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)
    }
}