Разблокировка позиций прокрутки в адаптере ListView

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

У меня вопрос, как я могу реализовать следующее (см. Рисунок ниже): Прежде всего мне нравится отображать только активные элементы. Когда пользователь достигает вершины этого списка, он может раскрыть список, чтобы разблокировать неактивные элементы. Разблокировка должна быть аналогична обычному обновлению контента, как в приложении Google Mail или реализации Криса Бейнса ( PullToRefresh) (пока я использую реализацию PullToRefresh, и я могу вызвать это событие, когда опускаюсь на расстояние 50% от Размер экрана). Часть, с которой у меня проблемы, это плавная прокрутка в списке неактивных элементов.

разблокировка скрытых элементов

Я думаю, мне нужны следующие шаги:

(1) Скажите моему адаптеру, что он должен прекратить прокрутку в положении первого активного элемента. Нужно ли для этого установить вид списка неактивных элементов на Visible.GONE?

(2) Когда пользователь опускается на 50%, мне нужно разблокировать представление списка неактивных элементов. Я думаю, что я мог бы использовать Visible.VISIBLE для этой части, но мне нужно сохранить текущую позицию прокрутки во время вызова adapter.notifyDataSetChanged(), Мне нравится избегать того, чтобы адаптер попадал в начало списка.

Любые предложения, как я могу это сделать? Другая идея, которую я имел, состояла в том, чтобы использовать фрагменты, каждый из которых отображал один вид списка. После снятия первого представления списка фрагмент неактивных элементов будет прокручиваться вниз. Но я думаю, что хочу работать так гладко, как я ожидаю:-)

Буду признателен за любую помощь!

С наилучшими пожеланиями, Майкл

0 ответов

Другие вопросы по тегам