андроид listviews: заголовок и представления нижнего колонтитула

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

Я установил свой заголовок и представления ноги путем выполнения:

getListView().addHeaderView(myHeaderView);
getListView().addFooterView(myFooterView);
setListAdapter(adapter);

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

Проблема, я не могу назвать addHeaderView или addFooterView после того, как я назвал setListAdapter.

Существует ли путь вокруг этого?

14
задан Dan Lew 7 January 2010 в 07:02
поделиться

3 ответа

Почему бы просто не свернуть заголовок и нижний колонтитул на нулевую высоту, или не вывести кнопки серым цветом (еще лучше).

И лучший пользовательский опыт, на мой взгляд, будет заключаться в динамической загрузке большего количества элементов при необходимости (т.е. при прокрутке), как это делает встроенное приложение Gmail.

.
10
ответ дан 1 December 2019 в 14:11
поделиться

Да, это ошибка или недосмотр в компоненте ListView. Вы можете обойти это, написав свой собственный WrapperListAdapter, который обрабатывает добавление и удаление исправленных элементов списка, но я могу сказать, что это не совсем просто сделать.

Альтернативно - и гораздо проще - вы можете добавить исправленный компонент выше или ниже кнопки ListView, где вы размещаете следующую и предыдущую кнопки.

.
3
ответ дан 1 December 2019 в 14:11
поделиться

Как насчет сброса адаптера каждый раз, когда вам нужно добавить представление заголовка , например:

ListView.FixedViewInfo headerInfo = getListView().new FixedViewInfo();
headerInfo.isSelectable=false ;
headerInfo.view = feedInfoView;
headerInfos.add(headerInfo);
headerViewListAdapter = new HeaderViewListAdapter(headerInfos,null,adapter);
getListView().setAdapter(headerViewListAdapter);
2
ответ дан 1 December 2019 в 14:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: