Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android设置一个文本视图';s text size等于另一个';s_Android_Kotlin - Fatal编程技术网

Android设置一个文本视图';s text size等于另一个';s

Android设置一个文本视图';s text size等于另一个';s,android,kotlin,Android,Kotlin,所以我有一个textview,它的大小是基于android的autoSizeTextType=“uniform”设置的。我想将该大小复制到另外两个文本视图 以下是我尝试过的: val firstButton = activity?.findViewById<TextView>(R.id.b1) val secondButton = activity?.findViewById<TextView>(R.id.b2) val thirdButton =

所以我有一个textview,它的大小是基于android的autoSizeTextType=“uniform”设置的。我想将该大小复制到另外两个文本视图

以下是我尝试过的:

    val firstButton = activity?.findViewById<TextView>(R.id.b1)
    val secondButton = activity?.findViewById<TextView>(R.id.b2)
    val thirdButton = activity?.findViewById<TextView>(R.id.b3)

    if (firstButton != null) {
        secondButton?.textSize = firstButton.textSize
        thirdButton?.textSize = firstButton.textSize
    }
val firstButton=activity?.findViewById(R.id.b1)
val secondButton=活动?.findViewById(R.id.b2)
val thirdButton=活动?.findViewById(R.id.b3)
if(firstButton!=null){
secondButton?.textSize=firstButton.textSize
thirdButton?.textSize=firstButton.textSize
}
但是,这导致2和3的文本大小约为第一个文本大小的4倍。有人知道我做错了什么吗?我猜它得到了某种dpi缩放大小,但我不确定如何获得正确的大小。

TextView.getTextSize()
返回,但
setTextSize()
将参数解释为缩放像素(sp)。有两种方法可以接受文本大小和单位。在您的情况下,单位应该是
TypedValue.COMPLEX\u unit\u PX

secondButton?.setTextSize(TypedValue.COMPLEX_UNIT_PX, firstButton.textSize)

这很有帮助,但现在它看起来像是在autoSizeTextType=“uniform”生效之前将其设置为第一个文本视图的原始大小。我在onResume方法中调用这个。是否有textsizechanged或类似的回调,我可以在其中放置代码,以便在第一个文本调整大小后发生?您想做什么?如果第二个和第三个按钮也会自动调整大小呢?:)没有直接的回调,但可能类似的事情可以通过布局侦听器实现。第二个和第三个文本视图没有自动调整大小。基本上,我有3个文本视图,每一个都需要放在一行上,并且它们的大小都必须相同。我提前知道第一行总是最长的,所以我使用自动调整大小,然后想将该大小复制到其他两行。我将研究如何使用布局侦听器。