I use new autosize feature added in support library 26. I read a documentation which can be found here : https://developer.android.com/preview/features/autosizing-textview.html
I suppose that it should work this way: You can enable auto-sizing with this attribute: app:autoSizeTextType="uniform"
. I think that TextView
should use all available space to display a whole text (not just a part - it shouldn't be cropped) and the textSize
should be as big as possible. If you need to limit a maximum or minimum size of the text then you can use these two attributes:
app:autoSizeMinTextSize="XXsp" // (you can also use px or dp values.)
or
app:autoSizeMaxTextSize="XXsp"
So far so good. Let's say that I need a TextView with 56dp width. I have texts with a different length and I want to set these texts to this TextView
. It should be automatically resized so it displays the whole text (all characters + not cropped) in the biggest possible textSize
.
This is my TextView:
<android.support.v7.widget.AppCompatTextView
android:id="@+id/vName"
style="@style/TextView.AutoSize"
android:layout_width="56dp"
android:gravity="bottom|center_horizontal"
android:maxLines="1"
app:autoSizeMinTextSize="1px"
app:autoSizeTextType="uniform"
app:layout_constraintBottom_toTopOf="@id/vGuideline"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
Unfortunately, the text view is cropped. I wanted to set this String as a text to the TextView above: "Groupa" but this is the result:
(TextView is inside ConstraintLayout with yellow circle background.)
As you can see the textview is not resized at all. Do you have any idea what to do?
Thanks.