question

fanmixco avatar image
0 Votes"
fanmixco asked RobCaplan edited

Any idea why AppCompatTextView (AndroidX) with autoSizeTextType is not working in Tablets and Compat theme?

I have been trying to add autosize to my app but it's failing. It never resizes the text. Here you have a preview where both Text View types (TextView and AppCompatTextView) and they look exactly after applying the required properties.

Nexus 10 with Android 11 in an Emulator

uWnGR.jpg

hgoX5.jpg

This is an image from a Huawei emulator:

hG0lU.jpg

I tried the following combinations and all look exactly the same:

granulary 2sp

 <!-- AppCompatTextView with android: option -->
 <androidx.appcompat.widget.AppCompatTextView
     android:text="@string/lblYourWeight"
     android:layout_width="match_parent"
     android:gravity="center_horizontal"
     android:textStyle="bold"
     android:autoSizeTextType="uniform"
     android:autoSizeMinTextSize="16sp"
     android:autoSizeMaxTextSize="100sp"
     android:autoSizeStepGranularity="2sp" />

 <!-- AppCompatTextView with app: option -->
 <androidx.appcompat.widget.AppCompatTextView
     android:text="@string/lblYourWeight"
     android:layout_width="match_parent"
     android:gravity="center_horizontal"
     android:textStyle="bold"
     app:autoSizeTextType="uniform"
     app:autoSizeMinTextSize="16sp"
     app:autoSizeMaxTextSize="100sp"
     app:autoSizeStepGranularity="2sp" />

 <!-- TextView with android: option -->
 <TextView
     android:text="@string/lblYourWeight"
     android:layout_width="match_parent"
     android:gravity="center_horizontal"
     android:textStyle="bold"
     android:autoSizeTextType="uniform"
     android:autoSizeMinTextSize="16sp"
     android:autoSizeMaxTextSize="100sp"
     android:autoSizeStepGranularity="2sp" />

 <!-- TextView with app: option -->
 <TextView
     android:text="@string/lblYourWeight"
     android:layout_width="match_parent"
     android:gravity="center_horizontal"
     android:textStyle="bold"
     app:autoSizeTextType="uniform"
     app:autoSizeMinTextSize="16sp"
     app:autoSizeMaxTextSize="100sp"
     app:autoSizeStepGranularity="2sp" />

granulary 12sp

 <!-- AppCompatTextView with android: option -->
 <androidx.appcompat.widget.AppCompatTextView
     android:text="@string/lblYourWeight"
     android:layout_width="match_parent"
     android:gravity="center_horizontal"
     android:textStyle="bold"
     android:autoSizeTextType="uniform"
     android:autoSizeMinTextSize="16sp"
     android:autoSizeMaxTextSize="100sp"
     android:autoSizeStepGranularity="12sp" />

 <!-- AppCompatTextView with app: option -->
 <androidx.appcompat.widget.AppCompatTextView
     android:text="@string/lblYourWeight"
     android:layout_width="match_parent"
     android:gravity="center_horizontal"
     android:textStyle="bold"
     app:autoSizeTextType="uniform"
     app:autoSizeMinTextSize="16sp"
     app:autoSizeMaxTextSize="100sp"
     app:autoSizeStepGranularity="12sp" />

 <!-- TextView with android: option -->
 <TextView
     android:text="@string/lblYourWeight"
     android:layout_width="match_parent"
     android:gravity="center_horizontal"
     android:textStyle="bold"
     android:autoSizeTextType="uniform"
     android:autoSizeMinTextSize="16sp"
     android:autoSizeMaxTextSize="100sp"
     android:autoSizeStepGranularity="12sp" />

 <!-- TextView with app: option -->
 <TextView
     android:text="@string/lblYourWeight"
     android:layout_width="match_parent"
     android:gravity="center_horizontal"
     android:textStyle="bold"
     app:autoSizeTextType="uniform"
     app:autoSizeMinTextSize="16sp"
     app:autoSizeMaxTextSize="100sp"
     app:autoSizeStepGranularity="12sp" />

This is my latest code:

 <?xml version="1.0" encoding="utf-8"?>
 <ScrollView 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">
     <LinearLayout
         android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:paddingLeft="5dp"
         android:paddingRight="5dp">
         <TableLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:stretchColumns="*"
             android:paddingTop="10dp"
             android:paddingBottom="5dp">
             <TableRow
                 android:layout_height="wrap_content"
                 android:layout_width="match_parent">
                 <androidx.appcompat.widget.AppCompatTextView
                     android:text="@string/lblYourWeight"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:gravity="center_horizontal"
                     android:textStyle="bold"
                     android:autoSizeTextType="uniform"
                     android:autoSizeMinTextSize="16sp"
                     android:autoSizeMaxTextSize="100sp"
                     android:autoSizeStepGranularity="2sp" />
                 <androidx.appcompat.widget.AppCompatTextView
                     android:text="@string/hUnits"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:gravity="center_horizontal"
                     android:textStyle="bold"
                     android:autoSizeTextType="uniform"
                     android:autoSizeMinTextSize="16sp"
                     android:autoSizeMaxTextSize="100sp"
                     android:autoSizeStepGranularity="2sp" />
             </TableRow>
             <TableRow
                 android:layout_height="wrap_content"
                 android:layout_width="match_parent">
                 <androidx.appcompat.widget.AppCompatEditText
                     android:layout_height="wrap_content"
                     android:layout_width="match_parent"
                     android:inputType="numberDecimal"
                     android:layout_column="0"
                     android:id="@+id/txtWeight" />
                 <androidx.appcompat.widget.AppCompatSpinner
                     android:layout_column="1"
                     android:layout_height="wrap_content"
                     android:layout_width="match_parent"
                     android:id="@+id/spinnerWeightUnits" />
             </TableRow>
         </TableLayout>
         <androidx.appcompat.widget.AppCompatTextView
             android:text="@string/gUnits"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:gravity="center_horizontal"
             android:textStyle="bold"
             android:autoSizeTextType="uniform"
             android:autoSizeMinTextSize="16sp"
             android:autoSizeMaxTextSize="100sp"
             android:autoSizeStepGranularity="2sp"
             android:paddingTop="10dp"
             android:paddingBottom="5dp" />
         <androidx.appcompat.widget.AppCompatSpinner
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:id="@+id/spinnerUnits"
             android:autoSizeTextType="uniform"
             android:autoSizeMinTextSize="16sp"
             android:autoSizeMaxTextSize="100sp"
             android:autoSizeStepGranularity="2sp"
             android:paddingTop="10dp"
             android:paddingBottom="5dp" />
                    
         <TableLayout
             android:layout_weight="1"
             android:stretchColumns="2"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:paddingTop="10dp"
             android:paddingBottom="5dp">
             <TableRow
                 android:layout_height="wrap_content"
                 android:layout_width="match_parent">
                 <androidx.appcompat.widget.AppCompatTextView
                     android:text="@string/lblFirstCelestial"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:gravity="center_horizontal"
                     android:textStyle="bold"
                     android:layout_weight="1"
                     android:autoSizeTextType="uniform"
                     android:autoSizeMinTextSize="16sp"
                     android:autoSizeMaxTextSize="100sp"
                     android:autoSizeStepGranularity="2sp" />
                 <androidx.appcompat.widget.AppCompatTextView
                     android:text="@string/lblSecondCelestial"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:gravity="center_horizontal"
                     android:textStyle="bold"
                     android:layout_weight="1"
                     android:autoSizeTextType="uniform"
                     android:autoSizeMinTextSize="16sp"
                     android:autoSizeMaxTextSize="100sp"
                     android:autoSizeStepGranularity="2sp" />
             </TableRow>
             <TableRow
                 android:layout_height="wrap_content"
                 android:layout_width="match_parent">
                 <androidx.appcompat.widget.AppCompatSpinner
                     android:layout_column="0"
                     android:layout_weight="1"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:autoSizeTextType="uniform"
                     android:autoSizeMinTextSize="16sp"
                     android:autoSizeMaxTextSize="100sp"
                     android:autoSizeStepGranularity="2sp"
                     android:id="@+id/spinnerFirstCelestial" />
                 <androidx.appcompat.widget.AppCompatSpinner
                     android:layout_column="1"
                     android:layout_weight="1"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:autoSizeTextType="uniform"
                     android:autoSizeMinTextSize="16sp"
                     android:autoSizeMaxTextSize="100sp"
                     android:autoSizeStepGranularity="2sp"
                     android:id="@+id/spinnerSecondCelestial" />
             </TableRow>
             <TableRow
                 android:layout_height="wrap_content"
                 android:layout_width="match_parent">
                 <androidx.appcompat.widget.AppCompatImageView
                     android:adjustViewBounds="true"
                     android:layout_column="0"
                     android:layout_weight="1"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:src="@drawable/earthp"
                     android:maxWidth="128dip"
                     android:id="@+id/imgFirstCelestial" />
                 <androidx.appcompat.widget.AppCompatImageView
                     android:adjustViewBounds="true"
                     android:layout_column="1"
                     android:layout_weight="1"
                     android:layout_width="0dp"
                     android:maxWidth="128dip"
                     android:layout_height="wrap_content"
                     android:src="@drawable/earthp"
                     android:id="@+id/imgSecondCelestial" />
             </TableRow>
             <TableRow
                 android:layout_height="wrap_content"
                 android:layout_width="match_parent">
                 <androidx.appcompat.widget.AppCompatTextView
                     android:layout_column="0"
                     android:layout_weight="1"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:gravity="center_horizontal"
                     android:autoSizeTextType="uniform"
                     android:autoSizeMinTextSize="16sp"
                     android:autoSizeMaxTextSize="100sp"
                     android:autoSizeStepGranularity="2sp"
                     android:id="@+id/lblDFirstCelestial" />
                 <androidx.appcompat.widget.AppCompatTextView
                     android:layout_column="1"
                     android:layout_weight="1"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:gravity="center_horizontal"
                     android:autoSizeTextType="uniform"
                     android:autoSizeMinTextSize="16sp"
                     android:autoSizeMaxTextSize="100sp"
                     android:autoSizeStepGranularity="2sp"
                     android:id="@+id/lblDSecondCelestial" />
             </TableRow>
             <TableRow
                 android:layout_height="wrap_content"
                 android:layout_width="match_parent">
                 <androidx.appcompat.widget.AppCompatTextView
                     android:layout_column="0"
                     android:layout_weight="1"
                     android:layout_width="0dp"
                     android:gravity="center_horizontal"
                     android:layout_height="wrap_content"
                     android:autoSizeTextType="uniform"
                     android:autoSizeMinTextSize="16sp"
                     android:autoSizeMaxTextSize="100sp"
                     android:autoSizeStepGranularity="2sp"
                     android:id="@+id/lblGFirstCelestial" />
                 <androidx.appcompat.widget.AppCompatTextView
                     android:layout_column="1"
                     android:layout_weight="1"
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:gravity="center_horizontal"
                     android:autoSizeTextType="uniform"
                     android:autoSizeMinTextSize="16sp"
                     android:autoSizeMaxTextSize="100sp"
                     android:autoSizeStepGranularity="2sp"                    
                     android:id="@+id/lblGSecondCelestial" />
             </TableRow>
         </TableLayout>
         <androidx.appcompat.widget.AppCompatTextView
             android:gravity="center_horizontal"
             android:textStyle="bold"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:id="@+id/lblGDescription"
             android:autoSizeTextType="uniform"
             android:autoSizeMinTextSize="16sp"
             android:autoSizeMaxTextSize="100sp"
             android:autoSizeStepGranularity="2sp"
             android:paddingTop="10dp"
             android:paddingBottom="5dp" />
         <androidx.appcompat.widget.AppCompatTextView
             android:gravity="center_horizontal"
             android:textStyle="bold"
             android:autoSizeTextType="uniform"
             android:autoSizeMinTextSize="16sp"
             android:autoSizeMaxTextSize="100sp"
             android:autoSizeStepGranularity="2sp"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:visibility="gone"
             android:id="@+id/lblDWeight"
             android:paddingTop="10dp"
             android:paddingBottom="5dp" />
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="horizontal">
             <View
                 android:layout_width="0dp"
                 android:layout_height="0dp"
                 android:layout_weight="1"
                 android:visibility="invisible" />
             <androidx.appcompat.widget.AppCompatImageView
                 android:visibility="gone"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:id="@+id/imgWeight"
                 android:paddingTop="10dp"
                 android:maxWidth="256dip"
                 android:adjustViewBounds="true"
                 android:layout_weight="2" />
             <View
                 android:layout_width="0dp"
                 android:layout_height="0dp"
                 android:layout_weight="1"
                 android:visibility="invisible" />
         </LinearLayout>
     </LinearLayout>
 </ScrollView>

My style is this one:

 <style name="Theme.GNowTheme" parent="Theme.AppCompat">
     <item name="android:colorPrimary">#000000</item>
     <item name="android:colorPrimaryDark">#000000</item>
     <item name="android:textColor">#BEBEBE</item>
     <item name="android:textColorPrimary">#FFFFFF</item>
 </style>

You can check the app here (it's written in Xamarin.Android):

https://bitbucket.org/supernovaic/gnow-android/src/autosize/

Any idea what am I doing wrong? Thanks.

P.S.:

  • Any idea why the android:maxWidth="128dip" is not working also?

  • I'm testing in a Nexus 10 with Android 11 in an Emulator.


dotnet-xamarin
· 5
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Please test it in your actual device, And I notice you use Huawei device, Does this device install the EMUI? If yes, please install the native android os.

0 Votes 0 ·

Hi Leon,

I don't have a 10" Tablet to test that's why I use a Nexus 10 running Android 11 as I shared in my question. Also, I tested in a Huawei Emulator and the issue is the same.

Thanks.

0 Votes 0 ·

Try to change the android:autoSizeTextType="uniform" to app:autoSizeTextType="uniform" make a test.

0 Votes 0 ·
Show more comments

0 Answers