Вы должны использовать AppCompatTextView
, а не обычный TextView
.
Посмотрите, как работает метод TextViewCompat :
public static void setAutoSizeTextTypeUniformWithConfiguration(
@NonNull TextView textView,
int autoSizeMinTextSize,
int autoSizeMaxTextSize,
int autoSizeStepGranularity,
int unit) throws IllegalArgumentException {
if (Build.VERSION.SDK_INT >= 27) {
textView.setAutoSizeTextTypeUniformWithConfiguration(
autoSizeMinTextSize, autoSizeMaxTextSize, autoSizeStepGranularity, unit);
} else if (textView instanceof AutoSizeableTextView) {
((AutoSizeableTextView) textView).setAutoSizeTextTypeUniformWithConfiguration(
autoSizeMinTextSize, autoSizeMaxTextSize, autoSizeStepGranularity, unit);
}
}
Он будет работать для любого TextView на 8.1 или более поздней версии, потому что именно тогда он был добавлен в платформу. Но на любом другом уровне API переданный TextView должен реализовывать интерфейс AutoSizeableTextView, чего не делает собственный класс TextView.