Android:如何在 Kotlin 中获取自动调整大小的 TextView 的实际文本大小?

问题描述 投票:0回答:1

有时需要为多个自动调整大小的 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?

android get textview autosize text-size
1个回答
0
投票

虽然这个问题是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)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.