【问题标题】:Can't change text size programmatically when using autosizing使用自动调整大小时无法以编程方式更改文本大小
【发布时间】:2019-06-21 16:14:49
【问题描述】:

我有多个使用 app:autoSizeTextType="uniform" 的 TextView,我想要做的是检查其中哪些在自动调整大小后具有最小的文本大小,然后将该大小设置为所有其他 TextView。

所以我有这样的方法从onCreate()调用

private fun setLabelsFontSize(){
    rootView.post {
        val minTextSize = minOf(textView1.textSize, textView2.textSize, textView3.textSize)

        textView1.setTextSize(TypedValue.COMPLEX_UNIT_PX, minTextSize)
        textView2.setTextSize(TypedValue.COMPLEX_UNIT_PX, minTextSize)
        textView3.setTextSize(TypedValue.COMPLEX_UNIT_PX, minTextSize)
    }
}

但没有任何反应,文字大小保持不变。当我从布局文件中删除 app:autoSizeTextType="uniform" 时,它工作正常。我该如何解决这个问题

【问题讨论】:

    标签: android textview android-textview-autosize


    【解决方案1】:

    像这样调用 setTexSize:

    private fun setLabelsFontSize(){
        rootView.post {
            val minTextSize = minOf(textView1.textSize, textView2.textSize, textView3.textSize)
            TextViewCompat.setAutoSizeTextTypeWithDefaults(textView1, TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE)
            TextViewCompat.setAutoSizeTextTypeWithDefaults(textView2, TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE)
            TextViewCompat.setAutoSizeTextTypeWithDefaults(textView3, TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE)
            textView1.setTextSize(TypedValue.COMPLEX_UNIT_PX, minTextSize)
            textView2.setTextSize(TypedValue.COMPLEX_UNIT_PX, minTextSize)
            textView3.setTextSize(TypedValue.COMPLEX_UNIT_PX, minTextSize)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-11-04
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      相关资源
      最近更新 更多