将ListViews和Button均匀地放入LinearLayout

时间:2013-05-30 14:38:29

标签: android android-layout android-linearlayout

我想将两个Listviews(+两个Textview)和一个Button均匀地放入LinearLayout。最终结果应如下所示:

enter image description here

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进一步嵌套布局,除非没有别的办法。

1 个答案:

答案 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作为高度。