我有一个用行填充的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的位置,右边有太多空间。我究竟做错了什么? :■
答案 0 :(得分: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"/>
答案 1 :(得分:0)
我认为你希望columnC和columnB具有相同的权重,但是你将它们设置为不同。
尝试
columnA:重量= 2
columnB:重量= 1
columnC:重量= 1
columnD:重量= 2
我对体重属性的经验非常有限,但我认为这是你如何得到你想要的结果。
如果您仍然遇到问题,如果您可以发布屏幕截图以及您希望它的外观,可以帮助我们。