使用自动调整大小时无法以编程方式更改文本大小
Can't change text size programmatically when using autosizing
我有多个使用 app:autoSizeTextType="uniform"
的 TextView,我想做的是检查其中哪些在自动调整大小后具有最小的文本大小,然后将该大小设置为所有其他 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"
时,它工作正常。我该如何解决这个问题
像这样调用 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)
}
}
我有多个使用 app:autoSizeTextType="uniform"
的 TextView,我想做的是检查其中哪些在自动调整大小后具有最小的文本大小,然后将该大小设置为所有其他 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"
时,它工作正常。我该如何解决这个问题
像这样调用 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)
}
}