Как сделать так, чтобы TextView имел maxLines, и если он не подходит, расширяться по горизонтали?

Я не хочу использовать scrollView. Я хочу следующее:

Краткий текст:

Длинный текст:

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" />

Для короткого текста ваш вывод будет выглядеть так:

Для длинного текста:

Другие вопросы по тегам