Как autoSizeTextType unifrom программно? - PullRequest
0 голосов
/ 22 мая 2019

Это возможно сделать

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:autoSizeTextType="uniform"
    android:maxLines="1" />

Но свойство autoSizeTextType может работать только для API LEVEL >= 26, и Android Studio показывает раздражающее предупреждение об этом.

Чтобы избавиться от этого, я хочу сделать это программно, но есть 3 способа:

textView.setAutoSizeTextTypeUniformWithPresetSizes(...)
textView.setAutoSizeTextTypeUniformWithConfiguration(...)

Эти два требуют настройки, но я хочу быть конфигурацией по умолчанию, такой же, как android:autoSizeTextType="uniform".

textView.setAutoSizeTextTypeWithDefaults(TextView.AUTO_SIZE_TEXT_TYPE_UNIFORM);

Это говорит:

AppCompatTextView.setAutoSizeTextTypeWithDefaults can only be called from within the same library group (groupId=com.android.support).

PS: я заключаю код в:

if(android.os.Build.VERSION.SDK_INT= > 26) {...}

1 Ответ

1 голос
/ 22 мая 2019

Вы можете использовать класс TextViewCompat, чтобы избежать ошибки ограничения библиотек. Как,

TextViewCompat.setAutoSizeTextTypeWithDefaults(textView,TextView.AUTO_SIZE_TEXT_TYPE_UNIFORM);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...