ListView в AppWidget «превышает» размеры виджета

У меня есть ListView внутри AppWidget. Каждая строка ListView имеет собственный макет, AppWidget указывает minHeight, как требуется. Проблема в том, что ListView превышает размеры AppWidget, а некоторые строки просто висят ниже границ виджета.

Я перепробовал все, что мог придумать, исправив высоту ListView, используя match_parent и/или wrap_content или строки и ListView, но мне не удалось это исправить.

Кто-то еще сталкивался с этой проблемой? Как сделать так, чтобы ListView помещалось внутри границ виджета и прокручивалось, вместо того, чтобы строки выходили за границы?


person Chaitanya    schedule 04.05.2012    source источник


Ответы (1)


Что ж, у меня есть причина проблемы, и я виноват здесь, по крайней мере, частично.

Меня попросили использовать собственный фон для ListView, а в 9-м патче, который я получил, была тень, нарисованная под фоном «контента». Android использовал весь png для рисования фона, придавая виджету вид «одна строка, свисающая с содержимого».

Я проверил это, используя сплошной цвет в качестве фона - он правильно расширяется, чтобы покрыть весь ListView.

Мои выводы:
1. Атрибуты minWidth и minHeight для виджета — это именно то, что они говорят; Android ДОЛЖЕН предоставить виджету больше места, если сможет. :)
2. Вы указали "минимальную" ширину, а фактическая ширина определяется шириной дочернего элемента View. Учитывая, что такой случай может быть распространенным, установка макета верхнего уровня width и height на wrap_content в главном представлении виджета кажется разумной.

person Chaitanya    schedule 07.05.2012