我想将两个Listviews(+两个Textview)和一个Button均匀地放入LinearLayout。最终结果应如下所示:
Listviews可以包含任意数量的项目(从空到需要滚动),但按钮必须始终可见。这里有很多答案建议使用layout_weight
以及layout_height="0dp"
和layout_width="fill_parent"
,但这会导致Listviews占用所有可用空间并将按钮推出屏幕。我假设按钮的参数是错误的,但我无法弄清楚它们中的哪一个。至少TextView正在运行,因为它们在每种情况下都能正确定位。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="12sp"
android:gravity="left"/>
<ListView
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="fill_parent"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="12sp"
android:layout_marginTop="12dp"
android:gravity="left"/>
<ListView
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="fill_parent"/>
<Button
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="fill_parent"/>
</LinearLayout>
我想避免使用额外的LinearLayouts进一步嵌套布局,除非没有别的办法。
答案 0 :(得分:2)
像这样(未经测试):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"/>
<ListView
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="fill_parent"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:layout_marginTop="12dp"/>
<ListView
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="fill_parent"/>
<Button
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_width="wrap_content"/>
</LinearLayout>
您的按钮需要wrap_content
高度,并且(我认为您的错误的原因)LinearLayout
应该有fill_parent
作为高度。