的LinearLayout layout_weight(LinearLayout layout_we

2019-09-26 03:35发布

我有一个填充了行一个ListView。 这些行来自看起来像一个XML文件中:

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="8dip"
android:weightSum="100">
<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:id="@+id/columnA"
    android:layout_weight="30"
    android:layout_gravity="center"/>  
<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:id="@+id/columnB" 
    android:layout_weight="30"
    android:layout_gravity="center"/>
<ImageView 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:src="@drawable/icon" 
    android:id="@+id/columnC"
    android:layout_weight="10"
    android:layout_gravity="center"
    >
</ImageView>       
<CheckBox
    android:layout_width="0dp"
    android:layout_height="wrap_content" 
    android:id="@+id/columnD"
    android:layout_weight="30"
    android:layout_gravity="center"/>

问题是,我想columnC项目和columnB项目非常接近,所以我行三个部分,即等距出来:columnA,(columnB + columnC),然后columnD。 我尝试用layout_weight你可以看到实现这一目标,但是上面的代码似乎产生相反的效果。 columnA和columnB左侧被压扁极,C柱似乎本身就是一个大空间中漂浮,然后columnD靠近columnC,在其右侧太多空间。 我究竟做错了什么? :■

Answer 1:

我会认为你想columnC和columnB具有相同的重量,但你必须把它设置与他们不同。

尝试

columnA:权重= 2

columnB:权重= 1

columnC:权重= 1

columnD:权重= 2

我与权重属性的经验非常有限,但我认为这是你可以得到你想要的结果。

如果你仍然有它的麻烦,可以帮助我们来帮助你,如果你能发布的屏幕截图,它的外观,你想怎么看。



Answer 2:

试试这个。 你基本上可以算出多少空间每个视图将“希望”重量/总重量。 你不必试图让他们平等100。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="8dip"
    android:weightSum="100">
<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:id="@+id/columnA"
    android:layout_weight="2"
    android:layout_gravity="center"/>  
<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:id="@+id/columnB" 
    android:layout_weight="1"
    android:layout_gravity="center"/>
<ImageView 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:src="@drawable/icon" 
    android:id="@+id/columnC"
    android:layout_weight="1"
    android:layout_gravity="center"
    >
</ImageView>       
<CheckBox
    android:layout_width="0dp"
    android:layout_height="wrap_content" 
    android:id="@+id/columnD"
    android:layout_weight="2"
    android:layout_gravity="center"/>


文章来源: LinearLayout layout_weight