Невозможно программно изменить размер текста при использовании авторазмера - PullRequest
1 голос
/ 21 июня 2019

У меня есть несколько TextViews, которые используют app:autoSizeTextType="uniform", и я хочу проверить, какие из них имеют наименьший размер текста после автоматического изменения размера, а затем установить этот размер для всех других 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" из файла макета, он работает нормально. Как я могу это исправить

1 Ответ

1 голос
/ 21 июня 2019

Вызовите 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)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...