自动调整 TextView 大小以适应更新的文本

Hug*_*otl 3 android textview android-appcompat

我通过 appcompat 库使用 Android 自动调整大小的 TextView,如下所示:

<android.support.v7.widget.AppCompatTextView
    android:id="@+id/info"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:maxLines="1"
    app:autoSizeTextType="uniform"
    app:autoSizeMinTextSize="8sp"
    app:autoSizeMaxTextSize="14sp"
    app:autoSizeStepGranularity="0.5sp"
    android:text="@string/something" />
Run Code Online (Sandbox Code Playgroud)

这在第一次设置文本时效果很好 - 例如,如果需要,文本大小会缩小。

但第二次设置时,如果内容足够小,则文本大小不会再次增大。它仍保持适合先前内容的较小尺寸。

那么,调用自动调整大小的 TextView 的正确过程是什么setText,以便遵守自动调整大小参数?或者有没有办法强制 TextView 重新评估其内容并调整文本大小?

我尝试在调用之前将文本大小设置回默认值,setText但这似乎没有效果。

小智 5

通过复制您的代码,我遇到了同样的问题,唯一有效的解决方案是为 TextView 提供特定的高度,例如: android:layout_height="30dp"
来自:https ://developer.android.com/guide/topics/ui/look-and-feel/autosizing -textview#设置-textview-自动调整大小

如果在 XML 文件中设置自动调整大小,则不建议对 TextView 的layout_width 或layout_height 属性使用值“wrap_content”。它可能会产生意想不到的结果。