根据maxWidth,Android TextView文本无法正确换行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据maxWidth,Android TextView文本无法正确换行相关的知识,希望对你有一定的参考价值。

在这篇文章附带的图片中,我制作了一条绿色波浪线,表示空白,似乎没有任何目的。

我希望冒号分隔符拥抱实际文本。在一个完美的世界中,事物看起来像是在图像底部显示的“No Wrap”字段。我对“另一个包装名称”字段也没关系,因为至少矩形因为名字而被用完了。

但是,“包裹字段名称”字段在实际文本和TextView边缘之间有一些明显的空白。还包括每个ListView项目布局的XML。您可以看到字段名称没有最小宽度,但最大宽度为128dp。

这是我的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/txvViewTextFieldFieldName"
            android:layout_marginTop="10dp"
            android:layout_marginLeft="10dp"
            android:textSize="18sp"
            android:singleLine="false"
            android:textColor="#ff000000"
            android:layout_marginBottom="10dp"
            android:textStyle="bold"
            android:maxWidth="128dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/specialFieldNameSeparator"
            android:id="@+id/txvViewTextFieldFieldNameSeparator"
            android:layout_marginTop="10dp"
            android:textSize="22sp"
            android:layout_marginBottom="10dp"
            android:layout_marginRight="5dp"
            android:textColor="#ff000000" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/txvViewTextFieldFieldContent"
            android:layout_marginTop="10dp"
            android:layout_marginRight="10dp"
            android:textSize="18sp"
            android:textColor="#ff000000"
            android:layout_marginBottom="10dp" />

</LinearLayout>

答案

狡猾的Android TextView在包装文本方面有一些限制。如果您注意到您可能已经发现“包裹的字段名称”不适合TextView但“字段名称包裹”确实如此。那是因为默认的TextView没有识别场景和更改文本属性的智能。幸运的是,您可以使用第三方库,

AutoFitTextView

这完全解决了您当前的问题。

以上是关于根据maxWidth,Android TextView文本无法正确换行的主要内容,如果未能解决你的问题,请参考以下文章

Android忽略maxWidth

Android imageview不尊重maxWidth?

Android TextView 不会用多行紧紧地拥抱文本,而是坚持使用 maxWidth

px自动换算rem

ImageView最大高度和宽度失效解决方案

android类异步上传参考