附加到 TextView Android 时自动调整大小不起作用

问题描述

所以我正在制作一个简单的计算器应用程序,当数字到达它的边缘时,我需要使文本视图中的数字自动调整大小。现在,如果我使用 TextView.setText(TextView.getText()+"5") 它不会自动调整大小,但为了简单起见,我喜欢使用 TextView.append("5") 。但是,当使用 append 函数时,TextView 调整大小似乎没有更新,也根本没有调整文本大小。

我尝试使用 API 级别 26 调整前和 26 级调整后调整大小。 API 级别 26 之前调整大小的示例:

        android:layout_height="60dp"
        app:autoSizeTextType="uniform"
        app:autoSizeMinTextSize="12sp"
        app:autoSizeMaxTextSize="100sp"
        app:autoSizeStepGranularity="2sp"

有谁知道我怎么能做到这一点?还是我一直在使用 TextView.setText(TextView.getText()+"5")? 提前致谢!

解决方法

不幸的是,我认为您将不得不回到TextView.setText(TextView.getText()+"5")。这是我的推理:

TextView.append() 定义为:

将指定文本附加到 TextView 的显示缓冲区的便捷方法,如果它不可编辑,则将其升级为 TextView.BufferType.EDITABLE。

将缓冲区类型更改为 TextView.BufferType.EDITABLE 会将 TextView 带入 EditText 的领域(EditText 扩展 TextView) 和 EditText 不支持自动调整大小:

来自documentation for EditText

此小部件不支持自动调整文本大小。