- Added implementation of
notifyDataSetChanged()
callednotifyParentDataSetChanged()
, please read the documentation for the method before considering using it. - Added generic types for the Parent and Child model objects inside of ExpandableRecyclerAdapter
- ParentListItem interface now takes a generic object type, which allows for
getChildItemList
to return a typed List instead ofList<?>
- The
ExpandableRecyclerAdapter
takes two more generic object types- A child model object of any type
- A parent model object that must extend
ParentListItem
which includes the previous child type
- As a result
onBindParentViewHolder
andonBindChildViewHolder
now give the specific object type specified in the class - Cleaned up a lot of internal logic within
ExpandableRecyclerAdapter
to avoid casting to Object - Removed protected method
getListItem
, with generics it is now more sane to accessmItemList
yourself if you need it in the subclass
- ParentListItem interface now takes a generic object type, which allows for
- Rename of
ParentListItem
andChildListItem
, this affects many getters and setters names to eliminate the item word. Some examples:Parent
interface now has the methodgetChildList()
instead ofgetChildItemList()
ExpandableRecyclerAdapter
renamed method fromgetParentItemList()
togetParentList()
- All the notify methods now are name
notifyParent...
instead of ofnotifyParentItem...
(Same for children) - The
ExpandCollapseListener
has methodsonParentExpanded
andonParentCollapsed
instead ofonListItemExpanded
- Changed the name and visibility of
onParentListItemExpanded
andonParentListItemCollapsed
- Now protected and named
parentExpandedFromViewHolder
andparentCollapsedFromViewHolder
- Not meant to be called from outside the adapter and viewholder, can be overriden to give some custom behaviour for collapsing/expanding
- Now protected and named
- Added support for multiple view types within recyclerview
getParentViewType()
,getChildViewType()
, andisParentViewType()
added with default implementation for single view type- Modified signatures of
onCreateParentViewHolder()
andonCreateChildViewHolder()
to pass view type being created
ParentViewHolder
package location modified fromcom.bignerdranch.expandablerecyclerview.Adapter.ExpandableRecyclerAdapter
tocom.bignerdranch.expandablerecyclerview.ExpandableRecyclerAdapter
ChildViewHolder
package location modified fromcom.bignerdranch.expandablerecyclerview.Adapter.ExpandableRecyclerAdapter
tocom.bignerdranch.expandablerecyclerview.ExpandableRecyclerAdapter
- Added ParentViewHolder methods:
getParent()
getParentAdapterPosition()
- Added ChildViewHolder methods:
getChild()
getParentAdapterPosition()
getChildAdapterPosition()
- Added
SimpleParentListItem
for quick implementation of ParentListItem interface (no need to override methods or subclass)
- Updated Support Library dependencies
- Improved expand/collapse performance
- Reduced frequency of notify calls in expand/collapse methods
- Added ability to expand and collapse list items by range
- Added
ExpandableRecyclerAdapter.expandParentRange
so that a subset of parents in a list can be expanded at once with one call - Added
ExpandableRecyclerAdapter.collapseParentRange
so that a subset of parents in a list can be collapsed at once with one call
- Added
- Added additional
notifyDatasetChanged
methods- Added
ExpandableRecyclerAdapter.notifyParentItemRangeRemoved
to notify the RecyclerView when a subset of parents is removed - Added
ExpandableRecyclerAdapter.notifyParentItemRangeChanged
to notify the RecyclerView when a subset of parents is changed - Added
ExpandableRecyclerAdapter.notifyChildItemRangeInserted
to notify the RecyclerView when a subset of children is inserted - Added
ExpandableRecyclerAdapter.notifyChildItemRangeRemoved
to notify the RecyclerView when a subset of children is removed - Added
ExpandableRecyclerAdapter.notifyChildItemRangeChanged
to notify the RecyclerView when a subset of children is changed - Added
ExpandableRecyclerAdapter.notifyParentItemMoved
to notify the RecyclerView when a parent's adapter position is changed - Added
ExpandableRecyclerAdapter.notifyChildItemMoved
to notify the RecyclerView when a child's adapter position is changed
- Added
- Replaced content in vertical linear sample with a more realistic, food-themed example
- Fix crash when restoring state when an initially expanded row has been collapsed
- Change
onListItemExpanded
andonListItemCollapsed
to be called after list is updated, fixes bug in issue #112
- Fix
notifyChildItemChanged
andnotifyParentItemChanged
, previously child objects were not being replaced
- Fix crash occurring when using notifyParentItemRangeInserted to add a group of items at the end of the list
For a migration guide from 1.0.3 to 2.0.0, see here.
- Significant renaming/reorganizing of library
ParentObject
is now namedParentListItem
.ExpandableRecyclerAdapter#mHelperItemList
now hasprotected
visibility and is namedmItemList
. ThisList
can be used to gain access to all expanded list items.ParentItemClickListener
is nowParentViewHolder.ParentListItemExpandCollapseListener
.
- Fleshed out Javadocs.
- Added ability to specify if a parent should be expanded initially.
- Added ability to expand and collapse list items programmatically (without relying on a click event).
- Added
ExpandableRecyclerAdapter.ExpandCollapseListener
. - Added horizontal linear sample project, demoing many of the new features in 2.0.0.
- Added ability to notify the adapter of changes to the parent list items and child items. Methods begin with
notifyParentItem
ornotifyChildItem
- Note: RecyclerView.Adapter's notify methods will not work correctly with this adapter.
- Reorganized sample project.
- Removed
setChildObjectList
fromParentListItem
interface. - Removed inaccurate "stable" id map.
- Removed application tag from manifest.
- Removed animation and click handling details from the adapter,
ParentViewHolder
now has methods used for implementing that behavior in your own subclasses (examples given in the samples with this library). - README updates
- Added usage instructions for new features.
- Updated references to the library where naming has changed.
- Bug fixes: #42, #46, #47
- Initial Version