ViewPager и OnItemClickListener в ListView - PullRequest
7 голосов
/ 17 ноября 2011

Я работаю над созданием адаптера представления списка с размахом.Моя основная методология заключается в том, чтобы обернуть представление элемента списка в качестве второго представления в ViewPager и предоставить необходимые обратные вызовы в слушателе изменения элемента ViewPager.Из-за большой боли я заставил переработчик View работать так, как планировалось, а также реализовал шаблоны ViewHolder и ViewBinder.Мне даже удалось удержать ListView от принятия сенсорных событий во время прокрутки ViewPager без необходимости создания собственного подкласса ListView (я могу сделать все это с помощью адаптера).

Где я работаюв беде заставляет селектор и OnItemClickListener работать.После просмотра источника ListView показалось, что путем переопределения метода hasFocusable () ViewPager всегда возвращать значение false (позже я извлечу это значение из дочернего представления), эти вещи должны были быть включены повторно.К сожалению, это не случай.Я попробовал обходной путь setDecendantFocusability(), и я все еще застрял.

Я хотел бы избежать необходимости расширять ListView, если это возможно, чтобы обеспечить наибольшую модульность.По тем же причинам я не хочу добавлять селектор в фон ViewPager (если разработчик изменит селектор ListView, это не будет отражено).По сути, я пытаюсь сделать код ViewPager прозрачным между ListView и дочерним View.Есть идеи?

1 Ответ

7 голосов
/ 18 декабря 2011

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

К сожалению, у нас нет примера кода, чтобы показать, как это сделать, но вы можете посмотреть на реализацию платформы панели уведомлений или последних приложений, чтобы получить некоторые идеи.

...