有时需要为多个自动调整大小的 TextView 设置相同的 textSize。例如,“数字输入”EditText 旁边的“单位”TextView。
不过目前Android中的自动调整大小似乎还没有提供这个功能。因此,我们可能应该编写一些函数来以编程方式执行此操作。
第一步是获取自动调整大小的 TextView 的实际 textSize。
我尝试过:
val view = findViewById<TextView>(R.id.textView)
Toast.makeText(this, "text size is ${view.textSize}", Toast.LENGTH_LONG).show()
并在手机上更改为多个区域设置。
不同区域设置的文本大小确实发生了变化,但 toasted 消息显示相同的大小 (56.0)。
如何在 Kotlin 中获取自动调整大小的 TextView 的实际 textSize?
虽然这个问题是10个月前发布的,但我在这里分享我的方法来帮助那些可能需要它的人。
例如,要获取自动调整大小后 TextView2 的实际 textSize,并将 TextView 的 textSize 设置为该大小,可以使用以下代码:
override fun onCreate(...) {
resetTextSize()
}
private fun resetTextSize(){
binding.textView2.post{
val textSizeRetrieved = binding.textView2.textSize
binding.textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSizeRetrieved)
}
}