Многострочный TextView в Android? - PullRequest
141 голосов
/ 13 июля 2011

Мне понравилось ниже xml

<TableRow>
    <TextView android:id="@+id/address1"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:gravity="left"
        android:maxLines="4" 
        android:singleLine="false"              
        android:text="Johar Mor, Gulistan-e-Johar, Karachi" >
    </TextView> 
</TableRow>

Это не работает для multiline, и я использую TableLayout ...

так в чем же я здесь ошибаюсь?

Ответы [ 16 ]

2 голосов
/ 17 февраля 2017

Что я узнал, так это добавление "\ n" между словами, где вы хотите, чтобы оно вставлялось в следующую строку. Например ...

<TextView
    android:id="@+id/time"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAlignment="center"
    android:text="M-F 9am-5pm \n By Appointment Only" />

\ n между 17:00 и By позволили мне лучше контролировать, где я хотел, чтобы моя следующая строка начиналась и заканчивалась.

1 голос
/ 10 сентября 2014

Я использовал:

TableLayout tablelayout = (TableLayout) view.findViewById(R.id.table);
tablelayout.setColumnShrinkable(1,true);

у меня это сработало.1 - номер столбца.

0 голосов
/ 27 апреля 2018
You can do this with TableRow, see below code

<TableRow >
    <TextView
        android:id="@+id/tv_description_heading"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:padding="8dp"
        android:text="@string/rating_review"
        android:textColor="@color/black"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/tv_description"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:maxLines="4"`enter code here`
        android:padding="8dp"
        android:text="The food test was very good."
        android:textColor="@color/black"
        android:textColorHint="@color/hint_text_color" />
</TableRow>
0 голосов
/ 23 января 2018

у меня ни одно из решений не сработало. Я знаю, что это не полный ответ на этот вопрос, но иногда это может помочь.

Я поместил 4 просмотра текста в вертикальное линейное расположение.

<Linearlayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation:"vertical"

    ...>
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text:"line1"
       .../>
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text:"line2"
       .../>
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text:"line3"
       .../>
    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text:"line4"
       .../>
</LinearLayout>

Это решение подходит для случаев, когда текст в текстовом представлении постоянен, как метки.

0 голосов
/ 24 сентября 2016

Почему бы вам не объявить строку вместо записи длинных строк в файл макета.Для этого вы должны объявить строку кода в файле макета 'android: text = "@ string / text"' и перейти к \\ app \ src \ main \ res \ values ​​\ strings.xml и добавить строку кода'Ваш многострочный текст здесь' Также используйте '\ n', чтобы отделить линию от любой точки, иначе линия будет автоматически откорректирована.

0 голосов
/ 13 июля 2011

TextView будет многострочным, если ему не хватит места, чтобы поместиться в одну строку, а singLine не будет установлен в true.

Если он получает пробел в одной строке, он не будет многострочным.

...