做一个界面,要求在父容器linearlayout中布置两个子组件,一个依附在顶部,一个依附在底部
但是下面的代码不生效
请问原因
(目前的解决方法是设置两个linearlayout统一用gravity=bottom 在上面的linearlayout中加入listview)
<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        
        <ListView 
            android:id="@+id/listview_main"
            android:cacheColorHint="@null"
            android:layout_gravity="top"
            android:fadingEdge="none"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />    
        
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:gravity="center"
            android:layout_marginBottom="20dp" >
            
            <Button
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginRight="48dp"
             android:background="@drawable/selector_common_fin" />
            
            <Button 
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:background="@drawable/selector_common_canc" />
            
        </LinearLayout>
    </LinearLayout>

解决方案 »

  1.   

    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"> <ListView 
                android:id="@+id/listview_main"
                android:cacheColorHint="@null"
                android:layout_gravity="top"
                android:fadingEdge="none"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" />
    </LinearLayout>
            
                
            
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                android:gravity="center"
                android:layout_marginBottom="20dp" >
                
                <Button
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="48dp"
                    android:background="@drawable/selector_common_fin" />
                
                <Button 
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/selector_common_canc" />
                
            </LinearLayout>
        </LinearLayout>
      

  2.   

    貌似弄明白了
    linearlayout orientation 会强制重力方向(不确定等看看源码)
    以及元素的生成加入顺序和属性的设置顺序影响了这个结果
      

  3.   


    +1linearlayout 会把下面的挤出去