Как перенести в строку представления Android TextView?

#android #android-layout #textview

#Android #android-layout #textview

Вопрос:

Я пытаюсь заставить TextView переносить текст в несколько строк, но, похоже, он всегда просто обрывается в конце первой строки. Вот соответствующий XML с моей точки зрения:

     <RelativeLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:id="@ id/relExtraInfo"
        android:layout_below="@ id/titleContainerLayout">

        <RelativeLayout android:layout_height="wrap_content"
            android:layout_width="fill_parent" android:layout_below="@ id/titleArtwork"
            android:id="@ id/relStarring">
            <TextView android:textStyle="bold" android:layout_height="wrap_content"
                android:text="Starring:" android:layout_width="wrap_content"
                android:id="@ id/lblStarring" android:layout_alignParentLeft="true"></TextView>
            <TextView android:layout_alignTop="@ id/lblStarring"
                android:text="This is a very long peice of text to try and get the TextView to spill over multiple lines."
                android:layout_alignBottom="@ id/lblStarring" android:id="@ id/txtStarring"
                android:layout_toRightOf="@ id/lblStarring" android:layout_width="fill_parent"></TextView>
        </RelativeLayout>

        <RelativeLayout android:layout_height="wrap_content"
            android:layout_width="fill_parent" android:id="@ id/relDirector"
            android:layout_below="@ id/relStarring">
            <TextView android:layout_height="wrap_content"
                android:layout_width="wrap_content" android:layout_alignParentLeft="true"
                android:text="Director:" android:textStyle="bold" android:id="@ id/lblDirector"></TextView>
            <TextView android:layout_height="wrap_content"
                android:text="TextView" android:layout_width="wrap_content"
                android:layout_alignTop="@ id/txtDirector"
                android:layout_alignBottom="@ id/txtDirector" android:id="@ id/txtDirector"
                android:layout_toRightOf="@ id/lblDirector" android:ellipsize="none"></TextView>
        </RelativeLayout>
    </RelativeLayout>
  

Я пробовал разные способы переноса, я установил elipsize в none, scrollHorizontally в false, я даже пробовал устаревшую singleLine = false, и это не работает.

Похоже, не хватает примеров, показывающих, как это сделать, и множество людей на SO задают один и тот же вопрос, ни на один из которых нет окончательного ответа.

Ответ №1:

Итак, ответ заключается в том, что RelativeLayout и многострочный TextView плохо сочетаются друг с другом, измените 2 внутренних элемента RelativeLayout на LinearLayout, и в TextView внезапно появится несколько строк.

Комментарии:

1. Возможно, в то время это было правдой, но просто обновление на текущий день, RelativeLayout действительно хорошо справляется с переносом содержимого вокруг многострочных текстовых представлений.

Ответ №2:

Попробуйте добавить android:width="0dip" в th TextView .

Комментарии:

1. Это делает текстовые представления невидимыми.

2. Это потому, что вместо android:width=»0dip» для TextView внутри linearlayuot. Убедитесь, что вы используете относительный макет, следовательно, невидимый