У меня есть ListView
. Данные позади него извлекаются из Интернета в наборах по 10-30 пунктов, когда пользователь прокручивается до конца. Чтобы указать, что он загружает больше предметов, я использовал addFooterView()
, чтобы добавить простой вид, который отображает сообщение «Загрузка ...» и счетчик. Теперь, когда у меня нет данных (больше нет данных для извлечения), я хочу скрыть это сообщение. Я пытался:Скрыть нижний колонтитул в ListView?
loadingView.setVisibility(View.GONE);
К сожалению, в то время как это скрывает вид, оно оставляет место для него. То есть В итоге я получил большое пустое место, где раньше было сообщение «Загрузка». Как я могу правильно скрыть это представление?
Я не могу использовать removeFooterView()
, потому что я, возможно, потребуется, чтобы показать его еще раз, и в этом случае я не могу назвать addFooterView()
снова, потому что адаптер уже установлен на ListView
, и вы не можете позвонить addHeaderView()
/addFooterView()
после установка адаптера.
Как вы устанавливаете высоту представления? Я попробовал setMinimumHeight (0); прежде чем скрываться, но, похоже, не работает. Я установил его в GONE, но пространство ячейки все еще осталось позади. – Maurice 2011-12-19 02:11:18
Высота и ширина - это параметры макета, поэтому вам нужно установить объект LayoutParameters для представления с новой шириной/высотой. См. Этот ответ SO: http://stackoverflow.com/a/2767142/59058. В основном, ширина, высота и поля являются свойствами, которые действительно применяются к контейнеру вида, а не к самому представлению, поэтому вы используете объект LayoutParameter, связанный с родителями, для их определения. – 2011-12-21 16:40:01
Я не думаю, что это работает для заголовка, я получил нуль на заголовок, который был прикреплен, и получил имя getLayoutParams() для. – Vadi 2012-04-15 22:55:08