TextView autoSizeTextType not working in Compat
Okay, so the combination of settings that worked :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"><android.support.v7.widget.AppCompatTextViewandroid:text="7"app:autoSizeTextType="uniform"/>
You also need the appcompat-v7 library as a dependency in your module build.gradle file.
dependencies { implementation 'com.android.support:appcompat-v7:27.1.1'}
The key thing to understand is to use app:autoSizeTextType
, as opposed to android:autoSizeTextType
Per the documentation:
To define the default setting in XML through the support library, use the app namespace and set the autoSizeTextType attribute to none or uniform.
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="200dp" app:autoSizeTextType="uniform" /></LinearLayout>
I solved it programmatically.
TextView number1 = findViewById(R.id.number_one);TextViewCompat.setAutoSizeTextTypeWithDefaults(number1, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM);
and the XML:
<TextView android:id="@+id/number_one" android:autoSizeTextType="uniform" android:gravity="center" android:text="1" />