Android: 如何在 Kotlin 中获取自动调整大小的 TextView 的实际文本大小?
Android: How to get the actual textsize of an auto-sized TextView, in Kotlin?
有时需要为多个自动调整大小的 TextView 设置相同的 textSize。例如,“数字输入”EditTexts 旁边的“单位”TextViews。
但是,目前Android中的自动调整大小似乎没有提供这个功能。所以我们很可能应该编写一些函数来以编程方式执行此操作。
第一步是获取自动调整大小的 TextView 的实际 textSize。
我试过了:
val view = findViewById<TextView>(R.id.textView)
Toast.makeText(this, "text size is ${view.textSize}", Toast.LENGTH_LONG).show()
并在 phone 上更改为多个语言环境。
文本大小 DID 因不同的语言环境而改变,但 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)
}
}
有时需要为多个自动调整大小的 TextView 设置相同的 textSize。例如,“数字输入”EditTexts 旁边的“单位”TextViews。
但是,目前Android中的自动调整大小似乎没有提供这个功能。所以我们很可能应该编写一些函数来以编程方式执行此操作。
第一步是获取自动调整大小的 TextView 的实际 textSize。
我试过了:
val view = findViewById<TextView>(R.id.textView)
Toast.makeText(this, "text size is ${view.textSize}", Toast.LENGTH_LONG).show()
并在 phone 上更改为多个语言环境。
文本大小 DID 因不同的语言环境而改变,但 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)
}
}