Как сделать так, чтобы TextView имел maxLines, и если он не подходит, расширяться по горизонтали?
2 ответа
Вы пробовали minLines в XML?
что-то вроде этого:
<TextView
android:id="@+id/tv_previous_story"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="3dp"
android:minLines="2" //(could be any minimum amount of lines)
android:textColor="@color/text_color"
android:textSize="@dimen/privacy_text_size" />
это должно сработать для вас, если у вас всегда есть хотя бы два слова (или минимальное количество строк, которые вы установили в XML)...
Если это не то, что вы ищете, возможно, вы могли бы обработать это программно и установить ширину и высоту TextView в соответствии с количеством слов... не точным методом, но, например:
void updateWidthAndHeightOfTextView(TextView tv, String t) {
tv.setWidth(t.length * [bla bla bla]);
tv.setHeight(tv.getWidth() / [bla bla bla]); //(if you want to change the height too, in this case according to the width)
}
Вы пишете по-своему, вы знаете, что вам нужно...
И есть также этот ответ, что я на самом деле не знаком с, но могу также ответить на ваши потребности...
ОБНОВИТЬ
На случай, если я не понял, когда написал выше, и вы хотите TextView
чтобы иметь maxLines и только динамическую ширину, вы можете использовать tv.setWidth(t.length * [bla bla bla]);
в методе semi, который я написал выше, и в.XML используйте maxLines...
Кроме того, в следующий раз, пожалуйста, задайте более конкретные вопросы, чтобы людям не пришлось изо всех сил пытаться понять, как дать вам соответствующий ответ на то, что вы хотите.
Надеюсь, это вам поможет!
Попробуй это:
<TextView
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="Your text here"
android:textColor="@color/purple_500"
android:textStyle="bold"
android:lines="2"
android:gravity="center"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
Для короткого текста ваш вывод будет выглядеть так:
Для длинного текста: