嵌套LinearLayout中的TextView现在显示
问题描述:
运行以下代码后,TextView3
未显示。当我运行方向为LinearLayout2
的代码为vertical
时,显示了TextView2
和TextView3
。在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_width
LinearLayout2
,TextView2
和TextView3
至match_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>