Android - 如果不适合,请移动textView

时间:2016-06-27 14:54:44

标签: android textview width

我在linearLayout(水平)中有3个TextView,当最后一个textview太大或没有空间时,它与父级匹配,如下图所示:

Image Here

我想要的是,如果textview达到linearlayout的宽度,那么textview应该移动到“Property”textView下面。 (下一行)

看看它应该如何:

Image here

这是我的XML代码片段:

  <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="5dp">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearance"
                    android:text="Property"
                    android:id="@+id/txtPropertyType" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearance"
                    android:text="/ 127 m"
                    android:id="@+id/txtArea"
                    android:layout_marginLeft="10dp" />

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearance"
                    android:text="/ 3 roomsssssssssdddd"
                    android:singleLine="false"
                    android:id="@+id/txtNumRoom"
                    android:layout_marginLeft="5dp" />
            </LinearLayout>

提前致谢x)

2 个答案:

答案 0 :(得分:0)

只需添加android:singleLine =&#34; true&#34;在每个文本视图上。你的问题是你的TextView正在多行上传播。

答案 1 :(得分:0)

修改你的xml并在LinearLayout下面添加另一个TextView:

        <LinearLayout

            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="5dp">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearance"
                android:text="Property"
                android:id="@+id/txtPropertyType" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearance"
                android:text="/ 127 m"
                android:id="@+id/txtArea"
                android:layout_marginLeft="10dp" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearance"
                android:text="/ 3 roomsssssssssdddd"
                android:singleLine="false"
                android:id="@+id/txtNumRoom"
                android:layout_marginLeft="5dp" />
        </LinearLayout>

        <TextView
            android:visibility="gone"
            android:layout_below="@+id/linearLayout"
            android:id="@+id/long_room"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="dfgdfdfgddfgdfgdd"/>

现在,您有两个选择:

选项1:检查房间号textview的长度。如果它超过12个(你必须找到所有字母最宽的数字 - 例如w),那么请txtNumRoom GONE的可见性和long_room GONE的可见性{1}}可见。

选项2:在呈现和显示之前查找txtNumRoom的高度。如果此高度大于txtArea的高度,则表示文本视图已经过多行。同样,在这种情况下,使txtNumRoom GONE和long_room的可见性可见。 请参阅this question以了解如何在呈现textview之前以编程方式查找textview的高度。