直接嵌套线性布局仅显示第一个子视图

时间:2011-08-22 15:18:15

标签: android xml layout nested

我正在尝试将两个线性布局嵌套为另一个线性布局的直接子项。最终意图是将这两个布局嵌套在ViewFlipper中,因此两个线性布局中的每一个都将被翻转进出屏幕。

布局工作正常,直到我将两个线性布局嵌套在父元素中,在这种情况下,只显示第一个子元素中的第一个小部件。所以我有这样的事情:

<LinearLayout (parent)...
  <LinearLayout (child1)...
   <child1's Widgets... <---only the first widget here is being shown

  <LinearLayout (child2)...
   <child2's widgets...

我不知道为什么会发生这种情况。谁能摆脱任何光芒?

完整代码:

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

        <TextView  
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:textSize="22sp"
            android:layout_gravity="center"
            android:gravity="center" 
            android:text="Hello, is this a great app?"
            android:textColor="#000000"
            android:layout_marginBottom="10dip"
            android:layout_marginTop="8dip"/>

        <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
            <Button
                android:id="@+id/btnYes"
                android:text="Yes"
                android:textSize="20sp"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginBottom="7dip"
                android:layout_marginLeft="4dip"
                android:layout_marginRight="4dip"/>
            <Button
                android:id="@+id/btnNo"
                android:text="No"
                android:textSize="20sp"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginBottom="7dip"
                android:layout_marginLeft="4dip"
                android:layout_marginRight="4dip"/>
        </LinearLayout>

        <!--  <ViewFlipper
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"> 
             -->

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

                <LinearLayout <!-- ONLY THE CONTENT FROM HERE IS BEING SHOWN -->
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">

                    <TextView
                    android:layout_width="0px" 
                    android:layout_height="wrap_content"
                    android:text="Lat:"
                    android:textSize="16sp"
                    android:layout_weight="1"
                    android:layout_marginLeft="12dip"/>
                    <TextView
                    android:id="@+id/lblLat"  
                    android:layout_width="0px" 
                    android:layout_height="wrap_content"
                    android:text=""
                    android:textSize="16sp"
                    android:layout_weight="3"
                    android:gravity="right"
                    android:layout_marginRight="12dip"/>
                </LinearLayout> <!--NO MORE CONTENT Is SHOWN AFTER HERE -->

                <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">   
                    <TextView
                    android:layout_width="0px" 
                    android:layout_height="wrap_content"
                    android:text="Lon:"
                    android:textSize="16sp"
                    android:layout_weight="1"
                    android:layout_marginLeft="12dip"/>
                    <TextView
                    android:id="@+id/lblLon"  
                    android:layout_width="0px" 
                    android:layout_height="wrap_content"
                    android:text=""
                    android:textSize="16sp"
                    android:layout_weight="3"
                    android:gravity="right"
                    android:layout_marginRight="12dip"/>

                </LinearLayout>

                <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">   
                    <TextView
                    android:layout_width="0px" 
                    android:layout_height="wrap_content"
                    android:text="Number of satellites:"
                    android:textSize="16sp"
                    android:layout_weight="3"
                    android:layout_marginLeft="12dip"/>
                    <TextView
                    android:id="@+id/lblSats"  
                    android:layout_width="0px" 
                    android:layout_height="wrap_content"
                    android:text=""
                    android:textSize="16sp"
                    android:layout_weight="1"
                    android:gravity="right"
                    android:layout_marginRight="12dip"/>

                </LinearLayout>

                <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">   
                    <TextView
                    android:layout_width="0px" 
                    android:layout_height="wrap_content"
                    android:text="Signal To Noise:"
                    android:textSize="16sp"
                    android:layout_weight="3"
                    android:layout_marginTop="25dip"
                    android:layout_marginLeft="12dip"/>
                    <TextView
                    android:id="@+id/lblSNR"  
                    android:layout_width="0px" 
                    android:layout_height="wrap_content"
                    android:text=""
                    android:textSize="16sp"
                    android:layout_weight="1"
                    android:gravity="right"
                    android:layout_marginTop="25dip"
                    android:layout_marginRight="12dip"/>

                </LinearLayout>

                <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">

                    <TextView
                    android:id="@+id/lblAddresses"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text=""
                    android:textSize="16sp"
                    android:layout_marginLeft="12dip"
                    android:minLines="3"/>

               </LinearLayout>

            </LinearLayout>

            <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <TextView
                    android:id="@+id/lblAbout"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="Stuff About App"
                    android:textSize="16sp"
                    android:layout_marginLeft="12dip"
                    android:minLines="3"/>

            </LinearLayout>


        <!--  </ViewFlipper> -->

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <Button
                    android:id="@+id/btnLookup"
                    android:text="LookUp"
                    android:textSize="18sp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="20dip"
                    android:paddingTop="1dip"
                    android:paddingBottom="5dip"
                    android:layout_alignParentBottom="true"
                    android:layout_marginBottom="8dip"
                    android:layout_marginLeft="8dip" />

            <Button
                    android:id="@+id/btnQuit"
                    android:text="Quit"
                    android:textSize="18sp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_alignParentRight="true"
                    android:padding="20dip"
                    android:paddingTop="1dip"
                    android:paddingBottom="5dip"
                    android:layout_marginBottom="8dip"
                    android:layout_marginRight="8dip" />

        </RelativeLayout>

    </LinearLayout>

1 个答案:

答案 0 :(得分:4)

确保所有LinearLayout代码都包含android:orientation媒体资源。

<LinearLayout
  ..
  android:orientation="vertical|horizontal">
...
</LinearLayout>

如果要在vertical中显示子组件,则需要明确指出它,因为默认情况下它设置为horizontal