LinearLayout应填充最小空间

时间:2012-06-17 23:05:18

标签: android android-layout android-linearlayout

我有这个布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="left">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Some text" />
    </LinearLayout>
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"/>
</LinearLayout>

但是如果在第一个文本视图中(在LinearLayout中)是大量文本,则第二个文本视图会离开屏幕。这可以通过将android:layout_weigh =“1”设置为线性布局来解决。但在这种情况下,线性布局将填充所有空间,我需要线性布局在短文本中填充最小空间,而不是在线性布局时隐藏第二文本视图的大量文本。

2 个答案:

答案 0 :(得分:0)

如果第一个textview占用太多水平空间,则第二个textview将在屏幕外呈现...

要避免在屏幕外渲染第二个文本视图,您需要限制第一个文本视图的水平大小。你可以给第一个textview一个带有固定数值的android:layout_width。你可以将android:singleLine设置为false。您可以将android:maxWidth设置为适当的值。 (我没有尝试过这些解决方案,但它们应该可以工作)。

或者,您可以考虑使用单个textview而不是连续两个。

答案 1 :(得分:0)

解决方案是将第一个TextView放在ScrollView中,并将第二个TextView放在一个永远不会隐藏的固定页脚中(这可以完成with a RelativeLayout)。

如果您的第一个TextView中有太多文本,那么您仍然可以在显示第二个TextView时滚动它。