Настройка режима автоматического изменения размера для TextView не имеет никакого эффекта

#android

#Android

Вопрос:

Я настраиваю автоматическое изменение размера с помощью Compat, как и все:

 TextViewCompat.setAutoSizeTextTypeWithDefaults(this, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM)
  

И когда я прочитаю значение после этого

 TextViewCompat.getAutoSizeTextType(this)
  

Это 0 (без автоматического изменения размера), и тест, естественно, не масштабируется.

Я не использую макет Android (я устанавливаю положение и размер самостоятельно), но даже если я установлю LayoutParams просто так, чтобы они не были пустыми, это не имеет никакого эффекта. Какие-либо подсказки?

Комментарии:

1. откуда вы берете значения

2. Я использую свою собственную логику компоновки.

Ответ №1:

Ну, мне нужно только использовать AppCompatTextView вместо TextView :/

Ответ №2:

Вы можете использовать два способа: использовать в XML или программно.

Метод 1: используйте атрибут:

 android:autoSizeTextType="uniform"  
  

Methode 2:

или использование setAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit) в oncreate methode

Убедитесь, что ширина вашего атрибута равна wrap_content

Ответ №3:

     add this app:autoSizeTextType="uniform" in your TextView.
  

Или

 In XML, we can do it by adding these lines in our TextView

    app:autoSizeMaxTextSize=”100sp” 
    app:autoSizeMinTextSize=”12sp” 
    app:autoSizeStepGranularity=”2sp” 
    app:autoSizeText=”uniform”
  

Или, в Java

     TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(TextView textview, int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit); 

    // Example
    TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(myTextView, 12, 100, 2, TypedValue.COMPLEX_UNIT_SP);