1

我有多个使用的 TextView,app:autoSizeTextType="uniform"我想要做的是检查其中哪些在自动调整大小后具有最小的文本大小,然后将该大小设置为所有其他 TextView。

所以我有这样的方法调用onCreate()

private fun setLabelsFontSize(){
    rootView.post {
        val minTextSize = minOf(textView1.textSize, textView2.textSize, textView3.textSize)

        textView1.setTextSize(TypedValue.COMPLEX_UNIT_PX, minTextSize)
        textView2.setTextSize(TypedValue.COMPLEX_UNIT_PX, minTextSize)
        textView3.setTextSize(TypedValue.COMPLEX_UNIT_PX, minTextSize)
    }
}

但是什么也没发生,文本大小保持不变。当我app:autoSizeTextType="uniform"从布局文件中删除时,它工作正常。我该如何解决

4

1 回答 1

1

像这样调用 setTexSize:

private fun setLabelsFontSize(){
    rootView.post {
        val minTextSize = minOf(textView1.textSize, textView2.textSize, textView3.textSize)
        TextViewCompat.setAutoSizeTextTypeWithDefaults(textView1, TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE)
        TextViewCompat.setAutoSizeTextTypeWithDefaults(textView2, TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE)
        TextViewCompat.setAutoSizeTextTypeWithDefaults(textView3, TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE)
        textView1.setTextSize(TypedValue.COMPLEX_UNIT_PX, minTextSize)
        textView2.setTextSize(TypedValue.COMPLEX_UNIT_PX, minTextSize)
        textView3.setTextSize(TypedValue.COMPLEX_UNIT_PX, minTextSize)
    }
}
于 2019-06-21T08:14:49.733 回答