嵌套LinearLayout中的TextView现在显示

问题描述:

运行以下代码后,TextView3未显示。当我运行方向为LinearLayout2的代码为vertical时,显示了TextView2TextView3。在horizontal的方向,只显示TextView3嵌套LinearLayout中的TextView现在显示

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout1" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <TextView 
     android:id="@+id/TextView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/String1" /> 

    <LinearLayout 
     android:id="@+id/LinearLayout2" 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <TextView 
      android:id="@+id/TextView2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/String2"/> 

     <TextView 
      android:id="@+id/TextView3" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/String3"/> 

    </LinearLayout> 

    <ListView 
     android:id="@+id/ListView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

问题是你已经设置为android:layout_widthLinearLayout2TextView2TextView3match_parent

现在,当您将LinearLayout2的方向设置为horizontal时,将只会看到TextView3

一个解决方案是如下平均分配两个TextView之间的宽度。

<LinearLayout 
    android:id="@+id/LinearLayout2" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <TextView 
     android:id="@+id/TextView2" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:layout_height="wrap_content" 
     android:text="@string/String2"/> 

    <TextView 
     android:id="@+id/TextView3" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:layout_height="wrap_content" 
     android:text="@string/String3"/> 

</LinearLayout> 

希望这有助于。

TextView 2的宽度是match_parent,这意味着它将填充父容器的宽度。

当父线性布局是垂直的,这并不重要,因为对“行”,文本视图2.

当它是水平的只有一件事,TextView2填充宽度,然后TextView3是在此之后放置,但它不在屏幕上。

如果您希望TextView2和3彼此相邻,则可以使用layout_weight作为第二个LinearLayout。

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/text_view_1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1.0" 
      android:text="@string/String1" /> 

     <TextView 
      android:id="@+id/text_view_2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1.0" 
      android:text="@string/String2" /> 

    </LinearLayout>