Многострочный многоточечный текст в AppWidget? - PullRequest
4 голосов
/ 17 мая 2011

То, что казалось простым требованием, становится довольно болезненным процессом. Мне нужен AppWidget для отображения некоторого (обычно многострочного) текста - размер текста может быть разным и может быть длиннее, чем позволяет вид, поэтому в этом случае требуется многоточие. Представление также будет поддерживать виджеты с изменяемыми размерами в Android v3.1, что опять-таки требует, чтобы виджет мог правильно динамически поддерживать содержимое разных размеров. Полегче, подумаешь? И если бы это была одна строка TextView, я думаю, что это было бы ...

Итак, изначально я создал один TextView, установил свойства для его многоточия, когда текст не помещается, и натолкнулся на ошибку , которая означает, что это не работает - текст оборачивается только через два линии.

Затем я взял пользовательское представление с открытым исходным кодом, которое правильно эллипсизирует с несколькими строками, и оно отлично работает, но только в действии. Я забыл, что AppWidget ограничивает то, что Views может идти в виджете, поэтому это тоже не срабатывает («класс не может быть накачан»). Я не вижу способа использовать этот пользовательский вид.

Итак ... лучшее решение, которое я могу придумать, - это добавить серию однострочных TextViews в виджет и перебирать подстроки, пока я не найду длину, подходящую для каждой строки, прежде чем перейти к следующей. т.е. вручную визуализировать / измерить / визуализировать текст. У этого подхода есть много недостатков.

Есть ли лучший способ получить многострочный эллиптический текст в AppWidget?

Ответы [ 2 ]

2 голосов
/ 22 июня 2011

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

Старый подход, который использовали бы люди - иметь доступный виджет приложения с разными размерами ячеек, каждый с разным макетом, - вероятно, все еще имеет смысл для виджетов приложения, которые не используют новый интерфейс стека или списка.

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

Я тоже работал над этой проблемой, и я решил сделать виджет фиксированного размера и использовать 10 TextViews в вертикальном LinearLayout.Кажется, нет другого способа сделать это без реального ListView.

Я думаю, на данный момент это достаточно хорошо.

...