Можно ли использовать расширяемые элементы списка с новым RecyclerView? Нравится ExpandableListView?
android
android-recyclerview
Дариуш Русин
источник
источник
Ответы:
Это просто сделать с помощью стандартных LayoutManager, все зависит от того, как вы управляете своим адаптером.
Если вы хотите расширить раздел, вы просто добавляете новые элементы в свой адаптер после заголовка. Не забудьте при этом вызвать notifyItemRangeInserted. Чтобы свернуть раздел, вы просто удаляете соответствующие элементы и вызываете notifyItemRangeRemoved (). Для любых изменений данных, о которых сообщается должным образом, представление ресайклера анимирует представления. При добавлении элементов создается область для заполнения новыми элементами, при этом новые элементы постепенно появляются. Удаление происходит наоборот. Все, что вам нужно сделать помимо материала адаптера, - это стилизовать ваши представления, чтобы передать логическую структуру пользователю.
Обновление: Райан Брукс написал статью о том, как это сделать.
источник
Получите пример реализации кода отсюда
Установите ValueAnimator внутри onClick ViewHolder
Вот окончательный код
источник
ExpandableListView
», потому что расширенное содержимое в этом случае представляет собой сам список с элементами, поступающими от адаптера. Это вырожденное решение, в котором в качестве детей в группе разрешен только 1 элемент.https://github.com/gabrielemariotti/cardslib
В этой библиотеке реализована реализация расширяемого списка с помощью recyclerview (см. Демонстрационное приложение в разделе «CardViewNative» -> «Список, сетка и RecyclerView» -> «Расширяемые карты»). Также в нем есть много других интересных комбинаций карт / списков.
источник
Кто-то жаловался на то, что вышеупомянутое решение нельзя использовать со списком в качестве расширяемого содержимого. Но есть простое решение: создать список и заполнить его вручную своими строками. .
Решение для ленивых: есть простое решение, если вы не хотите сильно менять код. Просто используйте адаптер вручную для создания представлений и добавления их в
LinearLayout
.Вот пример:
вспомогательные функции: getThemeReference
вспомогательный класс: ExpandUtils
Кавин Варнан уже научился анимировать макет ... Но если вы хотите использовать мой класс, не стесняйтесь, я опубликовал суть: https://gist.github.com/MichaelFlisar/738dfa03a1579cc7338a
источник
recyclerview
и вы можете развернуть / скрыть этот вложенный и использовать все оптимизацииrecyclerview
Вы можете использовать ExpandableLayout, который похож на плавную анимацию развертывания / свертывания CheckBox, поэтому вы можете использовать его как CheckBox в ListView и RecyclerView.
https://github.com/KyoSherlock/ExpandableLayout
источник
Это пример кода для того, что упоминается @TonicArtos для добавления и удаления элементов, а также для его анимации при выполнении, это взято из RecyclerView Animations и образца GitHub
1) Добавьте Listener в свой onCreateViewHolder (), чтобы зарегистрироваться для onClick
2) Создайте свой собственный OnClickListener внутри вашего адаптера
3) Добавьте свои addItem () и deleteItem ()
4) Если ваш RecyclerViewAdapter не находится в том же Activity, что и Recycler View , передайте экземпляр recyclerView адаптеру при создании
5) itemList - это список ArrayList типа mObject, который помогает поддерживать состояния элемента (Open / Close), имя, тип элемента (subItems / mainItem) и устанавливать тему на основе значений
источник