#android #textview #android-textview-autosize
#Android #textview #android-textview-автоматическое изменение размера
Вопрос:
У меня есть этот простой фрагмент кода, в котором я хочу, чтобы содержимое TextView было изменено. При первоначальном впечатлении текст внутри TextView имеет уменьшенное содержимое, и это здорово, но после включения границ макета я вижу, что TextView с автоматическим изменением размера на самом деле занимает больше места на экране, чем TextView, который не подходит для того же содержимого.
Вот мой код:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@ id/tv_1"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:maxLines="3"
android:text="Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello"
app:autoSizeMaxTextSize="12sp"
app:autoSizeMinTextSize="4sp"
app:autoSizeTextType="uniform"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@ id/tv_2"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@ id/tv_2"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:maxLines="3"
android:ellipsize="end"
android:text="Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@ id/tv_1"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Я что-то упустил? Любой ввод будет высоко оценен.
Ответ №1:
В Android 8.0 (уровень API 26) и выше вы можете указать TextView автоматически увеличивать или уменьшать размер текста, чтобы заполнить его макет на основе характеристик и границ TextView.
Настройка по умолчанию позволяет автоматически масштабировать TextView равномерно по горизонтальной и вертикальной осям.
https://developer.android.com/guide/topics/ui/look-and-feel/autosizing-textview
Комментарии:
1. На самом деле я пытаюсь понять, могу ли я как-то ограничить прямоугольник, в котором отображается текст, сохраняя при этом wrap_content