Spinner не переносит текст - это ошибка Android?

Если текстSpinner элемент слишком длинный, чтобы поместиться в одну строку, текст не оборачивается, а обрезается. Этотолько случай дляУровень API>= 11, Вот скриншоты Android4.2.2 (слева), который показывает неправильное поведение и Android2.3.3 (справа), где это выглядит, как ожидалось.

 

android:singleLine="false" просто игнорируется здесь. Как и все остальные попытки,android:linesandroid:minLinesи т. д.TextView как-то кажется намного шире, чем ширина окна.

Я видел других людей, имеющих такую же проблему, но никто не мог найти решение. Итак, это системная ошибка? Я неЯ думаю, что это несоответствие между версиями ОС может быть преднамеренным.

Пожалуйста, обратите внимание:

Были некоторые ответы, предлагающие относительно простые решения.

Написание кастомаAdapter и переопределениеgetView() так же какgetDropDownView(), Здесь это не решение, потому что на данный момент все еще существует оригинальная проблема: как должен выглядеть макет для правильного переноса строк?

УпаковкаTextView раскрывающегося представления в родительскомViewGroup, Не работает сandroid:layout_width="match_parent" потому что ширина родителя, как ни странно, кажется неограниченной.

Придание выпадающему виду фиксированной ширины. Это не подходит с различной ширинойSpinner могу иметь.

И, конечно же, нет решения вручную вставить\nгде-нибудь в тексте.

Воспроизведите с помощью следующего кода:

ОБНОВИТЬ: Я также загрузил это как пример проекта наGitHub:Скачать

/res/values/arrays.xml:


    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt.
    At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est.

/res/layout/spinner_item.xml:


Задавать :Adapter

spinner.setAdapter(ArrayAdapter.createFromResource(this,
            R.array.items,
            R.layout.spinner_item));

Ответы на вопрос(14)

Ваш ответ на вопрос