Как обернуть длинный текст в прядильщик

У меня есть два элемента spinner и EditText в представлении макета таблицы в отдельной строке. Прядильщики заполнены данными. Моя проблема заключается в том, что данные (тексты), заполненные в прядильщиках, слишком длинны, чтобы соответствовать размеру экрана. Поэтому прядильщики вынуждены растягивать излишне растягивающие другие элементы управления в другом ряду.

Мне нужно показать тексты в прядильщике. Следовательно, использование эллипсов не является вариантом. Если возможно, как я могу обернуть длинный текст на прядильщиках?

Solutions Collecting From Web of "Как обернуть длинный текст в прядильщик"

Шаг 1. TextView с завернутым текстом

Первое, что нужно сделать, – заставить простой TextView обернуть текст. Это просто:

 <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="false" android:text="very long text that will be wrapped to next line" /> 

Обратите внимание на атрибут singleLine .

Шаг 2. Пользовательский макет

Теперь нам нужно как-то установить singleLine атрибута singleLine значение false в TextView используемое Spinner чтобы показать элемент в списке.

В вашем коде у вас, вероятно, есть место, где вы создаете адаптер для использования с Spinner :

 this.mAdapter = ArrayAdapter.createFromResource(this, R.array.Planets, android.R.layout.simple_spinner_dropdown_item); 

Идея состоит в том, чтобы скопировать макет android.R.layout.simple_spinner_dropdown_item в ваш проект. Затем измените его, установив singleLine атрибута singleLine значение false в CheckedTextView :

Для этого добавьте файл в папку res/layout именем multiline_spinner_dropdown_item.xml со следующим кодом:

 <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/spinnerDropDownItemStyle" android:singleLine="false" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:ellipsize="marquee" /> 

Обратите внимание, что этот файл идентичен макету android.R.layout.simple_spinner_dropdown_item , за исключением того, что он имеет значение singleLine в false .

Шаг 3. Создание адаптера с настраиваемой компоновкой

Измените код создания адаптера, чтобы:

 this.mAdapter = ArrayAdapter.createFromResource(this, R.array.Planets, R.layout.multiline_spinner_dropdown_item); 

Вот скриншот из модифицированного примера SpinnerActivity из Android SDK:

Введите описание изображения здесь

Определите пользовательский макет и используйте его со счетчиком и адаптером.