如果到达视图边界,则将文本视图移至下一行

Shift textview to next line if view boundary is reached

我将以下布局包裹在线性布局中:

<LinearLayout
                            android:layout_width="match_parent"
                            android:layout_height="0dp"
                            android:layout_weight="1"
                            android:gravity="center_vertical"
                            android:orientation="horizontal">

                            <Lato_TextView
                                android:id="@+id/person_name"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:maxLines="2"
                                android:text="Aadil Holy"
                                android:textColor="#000000"
                                android:textSize="16sp"
                                exaprojects:fontName="Lato-Regular.ttf" />

                            <Lato_TextView
                                android:id="@+id/textView2"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginLeft="05dp"
                                android:layout_marginStart="05dp"
                                android:gravity="start|center"
                                android:text="(#884)"
                                android:textSize="14sp"
                                exaprojects:fontName="Lato-LightItalic.ttf" />
                        </LinearLayout>

视图在卡片视图中水平对齐,这里的问题是如果 person_name 中的文本太长,textView2 中的文本会被剪裁并垂直显示,这会运行这个布局。如何克服这个?

第一种方法:

android:ems or setEms(n)

"Makes the TextView be exactly this many ems wide"

注意:但仅当 layout_width 设置为 "wrap_content" 时。其他 layout_width 值覆盖 ems 宽度设置。

你也可以试试这个:

android:singleLine="false"

尝试改用 RelativeLayout。示例:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent">
    <TextView
        android:id="@+id/person_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:maxLines="2"
        android:text="Aadil Holy"
        android:textColor="#000000"
        android:textSize="16sp"
        android:layout_toLeftOf="@+id/textView2"/>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="05dp"
        android:layout_marginStart="05dp"
        android:gravity="start|center"
        android:text="(#884)"
        android:textSize="14sp"
        android:layout_alignParentRight="true" />