强制TextView使用多行文本

时间:2017-11-12 12:15:55

标签: android textview

这是这个问题的后续问题:

Force TextView to mutiline without \n

我有一个TextView,声明如下:

<TextView
        android:id="@+id/myTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.4"
        android:gravity="left|start"
        android:text="TextView"
        android:singleLine="false"/>

在代码中我设置了一个长文本,文本视图将其显示为一条长单行而不是将其分成多行。链接问题中接受的答案建议设置android:maxWidth属性,但我不想这样做。如果文本的长度超过文本视图声明中设置的0.4权重,我希望文本行自动中断。有没有办法做到这一点,而不是使用恒定的大小?

根据要求,这是文本视图及其父级:

<LinearLayout
    android:id="@+id/linearLayoutBottomData"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/linearLayoutTopData"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="10dp"
    android:orientation="horizontal"
    android:weightSum="1">

    <TextView
        android:id="@+id/myTextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.4"
        android:gravity="left|start"
        android:text="TextView"
        android:textColor="@android:color/black"
        android:textSize="@dimen/large_font_size"
        android:singleLine="false"/>

    <TextView
        android:id="@+id/myTextView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.4"
        android:gravity="left|start"
        android:text="TextView"
        android:textColor="@android:color/black"
        android:textSize="@dimen/large_font_size"/>
</LinearLayout>

2 个答案:

答案 0 :(得分:1)

使用我在评论中提到的以下布局。

<LinearLayout
android:id="@+id/linearLayoutBottomData"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/linearLayoutTopData"
android:layout_marginBottom="5dp"
android:layout_marginTop="10dp"
android:orientation="horizontal"
android:weightSum="1">

<TextView
    android:id="@+id/myTextView1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.4"
    android:gravity="left|start"
    android:text="TextView"
    android:textColor="@android:color/black"
    android:textSize="@dimen/large_font_size"
    android:singleLine="false"/>

<TextView
    android:id="@+id/myTextView2"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.4"
    android:gravity="left|start"
    android:text="TextView"
    android:textColor="@android:color/black"
    android:textSize="@dimen/large_font_size"/>

答案 1 :(得分:1)

如果您使用此

,Android 8.0中会有new feature