Скрыть вид нижнего колонтитула в ListView? - PullRequest
78 голосов
/ 30 ноября 2010

У меня есть ListView.Данные за ним берутся из Интернета, в наборах по 10-30 пунктов всякий раз, когда пользователь прокручивает весь путь до самого дна.Чтобы указать, что он загружает больше элементов, я использовал addFooterView(), чтобы добавить простое представление, отображающее сообщение «Загрузка ...» и счетчик.Теперь, когда у меня нет данных (больше нет данных для извлечения), я хочу скрыть это сообщение.Я попытался сделать:

loadingView.setVisibility(View.GONE);

К сожалению, хотя это скрывает вид, оно оставляет место для него.Т.е. я получаю большое пустое место, где раньше было сообщение «Загрузка».Как я могу правильно скрыть это представление?

Я не могу использовать removeFooterView(), потому что мне может понадобиться показать его снова, и в этом случае я не могу снова вызвать addFooterView(), потому что адаптер ужебыл установлен на ListView, и вы не можете позвонить addHeaderView() / addFooterView() после установки адаптера.

Ответы [ 13 ]

0 голосов
/ 25 сентября 2012

Если вы хотите удалить нижний колонтитул в ListView, просто позвоните

listView.addFooterView(new View(yourContext)); 

. Он добавит пустое пустое представление, которое не зарезервирует место

0 голосов
/ 23 января 2011

Я также обнаружил, что возможен вызов onContentChanged() (если вы используете ListActivity) для принудительного воссоздания ListView, если мне нужно добавить HeaderView к ним после вызова setAdapter(), но это очень уродливый хак.

0 голосов
/ 09 января 2011

Используется

footer.removeAllViews();

Это не удаляет нижний колонтитул, а очищает детей.Вы снова должны заселять детей.Можно проверить по

footer.getChildCount()<2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...