如何安排三个线性布局?

时间:2011-08-07 16:36:57

标签: android android-layout

我有四个LinearLayouts,顶部一个作为包装器,其余包含对象。我希望中心一个(使用ListView)来填充我的屏幕。所以,我应该看到button1,然后是可滚动的项目列表,然后是屏幕底部的button2。

如果我尝试设置LinearLayout或ListView的layout_height属性,我会丢失button2。

也许,我甚至不应该使用LinearLayouts?任何建议都非常感谢!我的布局XML如下。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout android:id="@+id/linearLayout1"
    android:layout_width="match_parent" android:layout_height="wrap_content">
    <Button android:text="Button" android:id="@+id/button1"
        android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>

<LinearLayout android:id="@+id/linearLayout3"
    android:layout_width="match_parent" android:layout_height="wrap_content">
    <ListView android:id="@+id/android:list"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        xmlns:android="http://schemas.android.com/apk/res/android" />
</LinearLayout>


<LinearLayout android:id="@+id/linearLayout2"
    android:layout_width="match_parent" android:layout_height="wrap_content">
    <Button android:text="Button" android:id="@+id/button2"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_gravity="bottom"></Button>
</LinearLayout>

</LinearLayout>

4 个答案:

答案 0 :(得分:2)

为什么不尝试摆脱包装每个项目的线性布局,并将最外层的LinearLayout设置为android:orientation =“vertical”?这样一切都会按照你的意愿堆叠。

答案 1 :(得分:1)

使用类似的东西

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent" android:layout_height="fill_parent"
 android:orientation="vertical">

<Button android:text="Button" android:id="@+id/button1"
    android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>

<ListView android:id="@+id/android:list"
    android:layout_width="fill_parent" android:layout_height="0dp"
    android:layout_weight="1.0" />

<Button android:text="Button" android:id="@+id/button2"
    android:layout_width="match_parent" android:layout_height="wrap_content"
    android:layout_gravity="bottom"></Button>

</LinearLayout>

答案 2 :(得分:0)

将linearLayout3更改为:

<LinearLayout android:id="@+id/linearLayout3"
   android:layout_width="match_parent" android:layout_height="match_parent"
   android:layout_weight="1.0">
   <ListView android:id="@+id/android:list"
     android:layout_width="fill_parent" android:layout_height="wrap_content"
      xmlns:android="http://schemas.android.com/apk/res/android" />
</LinearLayout>

基本上将layoutHeight设置为'match_parent',并将'layout_weight'添加到'1.0'。

答案 3 :(得分:0)

        <?xml version="1.0" encoding="utf-8"?> <LinearLayout        

         xmlns:android="http://schemas.android.com/apk/res/android"    

         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:orientation="vertical"> 

    <Button android:text="Button"
          android:id="@+id/button1"
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"/>

       <ListView android:id="@+id/android:list" 
           android:layout_width="fill_parent" 
           android:layout_height="wrap_content"/>

       <Button android:text="Button" 
               android:id="@+id/button2"         
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"         
               android:layout_gravity="bottom"/>

          </LinearLayout>

以这种方式做到....