java.lang.Object | |
↳ | com.h6ah4i.android.widget.advrecyclerview.expandable.RecyclerViewExpandableItemManager |
Provides item expansion operation for android.support.v7.widget.RecyclerView
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
interface | RecyclerViewExpandableItemManager.OnGroupCollapseListener | Used for being notified when a group is collapsed | |||||||||
interface | RecyclerViewExpandableItemManager.OnGroupExpandListener | Used for being notified when a group is expanded | |||||||||
class | RecyclerViewExpandableItemManager.SavedState |
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
long | NO_EXPANDABLE_POSITION | Packed position version of NO_POSITION
|
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
RecyclerViewExpandableItemManager(Parcelable savedState)
Constructor.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
void |
attachRecyclerView(RecyclerView rv)
Attaches android.support.v7.widget.RecyclerView instance. | ||||||||||
void |
collapseAll()
Collapse all groups. | ||||||||||
boolean |
collapseGroup(int groupPosition, Object payload)
Collapse a group.
| ||||||||||
boolean |
collapseGroup(int groupPosition)
Collapse a group.
| ||||||||||
Adapter |
createWrappedAdapter(Adapter adapter)
Create wrapped adapter.
| ||||||||||
void |
expandAll()
Expand all groups. | ||||||||||
boolean |
expandGroup(int groupPosition)
Expand a group.
| ||||||||||
boolean |
expandGroup(int groupPosition, Object payload)
Expand a group.
| ||||||||||
int |
getChildCount(int groupPosition)
Gets the number of children in a specified group.
| ||||||||||
static long |
getChildItemId(long rawId)
Gets child item ID from a raw ID.
| ||||||||||
static int |
getChildViewType(int rawViewType)
Gets child view type from a raw view type.
| ||||||||||
int |
getCollapsedGroupsCount()
Gets the number of collapsed groups.
| ||||||||||
static long |
getCombinedChildId(long groupId, long childId)
Gets combined ID for child item. | ||||||||||
static long |
getCombinedGroupId(long groupId)
Gets combined ID for child item. | ||||||||||
boolean |
getDefaultGroupsExpandedState()
Gets default group items expanded state
| ||||||||||
long |
getExpandablePosition(int flatPosition)
Converts a flat position (the raw position of an item in the list) to a group and/or child position
(represented in a packed position).
| ||||||||||
int |
getExpandedGroupsCount()
Gets the number of expanded groups.
| ||||||||||
int |
getFlatPosition(long packedPosition)
Converts a group and/or child position to a flat position.
| ||||||||||
int |
getGroupCount()
Gets the number of groups.
| ||||||||||
static long |
getGroupItemId(long rawId)
Gets group item ID from a raw ID.
| ||||||||||
static int |
getGroupViewType(int rawViewType)
Gets group view type from a raw view type.
| ||||||||||
static int |
getPackedPositionChild(long packedPosition)
Gets the child position from a packed position.
| ||||||||||
static long |
getPackedPositionForChild(int groupPosition, int childPosition)
Returns the packed position representation of a child position. | ||||||||||
static long |
getPackedPositionForGroup(int groupPosition)
Returns the packed position representation of a group's position.
| ||||||||||
static int |
getPackedPositionGroup(long packedPosition)
Gets the group position from a packed position.
| ||||||||||
Parcelable |
getSavedState()
Gets saved state object in order to restore the internal state. | ||||||||||
boolean |
isAllGroupsCollapsed()
Whether the all groups are expanded.
| ||||||||||
boolean |
isAllGroupsExpanded()
Whether the all groups are expanded.
| ||||||||||
boolean |
isGroupExpanded(int groupPosition)
Whether the given group is currently expanded.
| ||||||||||
static boolean |
isGroupItemId(long rawId)
Checks whether the passed item ID is a group's one.
| ||||||||||
static boolean |
isGroupViewType(int rawViewType)
Checks whether the passed view type is a group's one.
| ||||||||||
boolean |
isReleased()
Indicates this manager instance has released or not.
| ||||||||||
void |
notifyChildItemChanged(int groupPosition, int childPosition, Object payload)
Notify any registered observers that the child item at | ||||||||||
void |
notifyChildItemChanged(int groupPosition, int childPosition)
Notify any registered observers that the child item at | ||||||||||
void |
notifyChildItemInserted(int groupPosition, int childPosition)
Notify any registered observers that the group item reflected at | ||||||||||
void |
notifyChildItemMoved(int fromGroupPosition, int fromChildPosition, int toGroupPosition, int toChildPosition)
Notify any registered observers that the child item reflected at
| ||||||||||
void |
notifyChildItemMoved(int groupPosition, int fromChildPosition, int toChildPosition)
Notify any registered observers that the child item reflected at
| ||||||||||
void |
notifyChildItemRangeChanged(int groupPosition, int childPositionStart, int itemCount)
Notify any registered observers that the | ||||||||||
void |
notifyChildItemRangeChanged(int groupPosition, int childPositionStart, int itemCount, Object payload)
Notify any registered observers that the | ||||||||||
void |
notifyChildItemRangeInserted(int groupPosition, int childPositionStart, int itemCount)
Notify any registered observers that the currently reflected | ||||||||||
void |
notifyChildItemRangeRemoved(int groupPosition, int childPositionStart, int itemCount)
Notify any registered observers that the | ||||||||||
void |
notifyChildItemRemoved(int groupPosition, int childPosition)
Notify any registered observers that the child item previously located at | ||||||||||
void |
notifyChildrenOfGroupItemChanged(int groupPosition, Object payload)
Notify any registered observers that the children items contained in the group item at | ||||||||||
void |
notifyChildrenOfGroupItemChanged(int groupPosition)
Notify any registered observers that the children items contained in the group item at | ||||||||||
void |
notifyGroupAndChildrenItemsChanged(int groupPosition)
Notify any registered observers that the group and children items at | ||||||||||
void |
notifyGroupAndChildrenItemsChanged(int groupPosition, Object payload)
Notify any registered observers that the group and children items at | ||||||||||
void |
notifyGroupItemChanged(int groupPosition, Object payload)
Notify any registered observers that the group item at | ||||||||||
void |
notifyGroupItemChanged(int groupPosition)
Notify any registered observers that the group item at | ||||||||||
void |
notifyGroupItemInserted(int groupPosition, boolean expanded)
Notify any registered observers that the group item reflected at | ||||||||||
void |
notifyGroupItemInserted(int groupPosition)
Notify any registered observers that the group item reflected at | ||||||||||
void |
notifyGroupItemMoved(int fromGroupPosition, int toGroupPosition)
Notify any registered observers that the group item reflected at
| ||||||||||
void |
notifyGroupItemRangeInserted(int groupPositionStart, int itemCount, boolean expanded)
Notify any registered observers that the currently reflected | ||||||||||
void |
notifyGroupItemRangeInserted(int groupPositionStart, int itemCount)
Notify any registered observers that the currently reflected | ||||||||||
void |
notifyGroupItemRangeRemoved(int groupPositionStart, int itemCount)
Notify any registered observers that the | ||||||||||
void |
notifyGroupItemRemoved(int groupPosition)
Notify any registered observers that the group item previously located at | ||||||||||
void |
release()
Detach the android.support.v7.widget.RecyclerView instance and release internal field references. | ||||||||||
void |
restoreState(Parcelable savedState)
Restore saves state.
| ||||||||||
void |
restoreState(Parcelable savedState, boolean callHooks, boolean callListeners)
Restore saves state. | ||||||||||
void |
scrollToGroup(int groupPosition, int childItemHeight)
Scroll to a group.
| ||||||||||
void |
scrollToGroup(int groupPosition, int childItemHeight, int topMargin, int bottomMargin, AdapterPath path)
Scroll to a group.
| ||||||||||
void |
scrollToGroup(int groupPosition, int childItemHeight, int topMargin, int bottomMargin)
Scroll to a group.
| ||||||||||
void |
scrollToGroupWithTotalChildrenHeight(int groupPosition, int totalChildrenHeight, int topMargin, int bottomMargin)
Scroll to a group with specifying total children height.
| ||||||||||
void |
scrollToGroupWithTotalChildrenHeight(int groupPosition, int totalChildrenHeight, int topMargin, int bottomMargin, AdapterPath path)
Scroll to a group with specifying total children height.
| ||||||||||
void |
setDefaultGroupsExpandedState(boolean expanded)
Sets default group items expanded state
| ||||||||||
void |
setOnGroupCollapseListener(RecyclerViewExpandableItemManager.OnGroupCollapseListener listener)
Register a callback to be invoked when an group item has been collapsed.
| ||||||||||
void |
setOnGroupExpandListener(RecyclerViewExpandableItemManager.OnGroupExpandListener listener)
Register a callback to be invoked when an group item has been expanded.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Packed position version of NO_POSITION
Constructor.
savedState | The saved state object which is obtained from the getSavedState() method.
|
---|
Attaches android.support.v7.widget.RecyclerView instance.
Before calling this method, the target android.support.v7.widget.RecyclerView must set
the wrapped adapter instance which is returned by the
createWrappedAdapter(android.support.v7.widget.RecyclerView.Adapter)
method.
rv | The android.support.v7.widget.RecyclerView instance |
---|
Collapse all groups.
Note that this method does not invoke the onGroupCollapse(int, boolean, Object)
callback.
Collapse a group.
groupPosition | The group position to be collapsed |
---|---|
payload | Optional parameter, use null to identify a "full" update the group item |
Collapse a group.
groupPosition | The group position to be collapsed |
---|
Create wrapped adapter.
adapter | The target adapter. |
---|
RecyclerViewExpandableItemManager
instance.
Expand all groups.
Note that this method does not invoke the onGroupExpand(int, boolean, Object)
callback.
Expand a group.
groupPosition | The group position to be expanded |
---|
Expand a group.
groupPosition | The group position to be expanded |
---|---|
payload | Optional parameter, use null to identify a "full" update the group item |
Gets the number of children in a specified group.
groupPosition | the position of the group for which the children count should be returned |
---|
Gets child item ID from a raw ID.
rawId | raw item ID value (return value of getItemId() ) |
---|
Gets child view type from a raw view type.
rawViewType | raw view type value (return value of getItemViewType() ) |
---|
Gets the number of collapsed groups.
Gets combined ID for child item.
bit 0-27: Lower 28 bits of the childId bit 28-55: Lower 28 bits of the groupId bit 56-61: reserved
groupId | The ID of the group that contains the child. |
---|---|
childId | The ID of the child. |
Gets combined ID for child item.
bit 0-27: all bits are set to 1 bit 28-55: Lower 28 bits of the groupId bit 56-61: reserved
groupId | The ID of the group that contains the child. |
---|
Gets default group items expanded state
Converts a flat position (the raw position of an item in the list) to a group and/or child position
(represented in a packed position). Use getPackedPositionChild(long)
, getPackedPositionGroup(long)
to unpack.
flatPosition | The flat position to be converted |
---|
Gets the number of expanded groups.
Converts a group and/or child position to a flat position.
packedPosition | The group and/or child position to be converted in packed position representation. |
---|
Gets the number of groups.
Gets group item ID from a raw ID.
rawId | raw item ID value (return value of getItemId() ) |
---|
Gets group view type from a raw view type.
rawViewType | raw view type value (return value of getItemViewType() ) |
---|
Gets the child position from a packed position.
To get the group that this child belongs to, use getPackedPositionGroup(long)
.
See getPackedPositionForChild(int, int)
.
packedPosition | The packed position from which the child position will be returned. |
---|
NO_POSITION
.
Returns the packed position representation of a child position.
In general, a packed position should be used in situations where the position given to/returned from
RecyclerViewExpandableItemManager
method can either be a child or group.
The two positions are packed into a single long which can be unpacked using getPackedPositionChild(long)
and
getPackedPositionGroup(long)
.
groupPosition | The child's parent group's position |
---|---|
childPosition | The child position within the group |
Returns the packed position representation of a group's position. See getPackedPositionForChild(int, int)
.
groupPosition | The child's parent group's position. |
---|
Gets the group position from a packed position. See getPackedPositionForChild(int, int)
.
packedPosition | The packed position from which the group position will be returned. |
---|
NO_POSITION
.
Gets saved state object in order to restore the internal state.
Call this method in Activity/Fragment's onSavedInstance() and save to the bundle.
Whether the all groups are expanded.
Whether the all groups are expanded.
Whether the given group is currently expanded.
groupPosition | The group to check |
---|
Checks whether the passed item ID is a group's one.
rawId | raw item ID value (return value of getItemId() ) |
---|
Checks whether the passed view type is a group's one.
rawViewType | raw view type value (return value of getItemViewType() ) |
---|
Indicates this manager instance has released or not.
Notify any registered observers that the child item at {groupPosition, childPosition}
has changed.
This is an item change event, not a structural change event. It indicates that any
reflection of the data at {groupPosition, childPosition}
is out of date and should be updated.
The item at {groupPosition, childPosition}
retains the same identity.
groupPosition | Position of the group item which contains the changed child |
---|---|
childPosition | Position of the child item in the group that has changed |
payload | A non-null list of merged payloads. Can be empty list if requires full update. |
Notify any registered observers that the child item at {groupPosition, childPosition}
has changed.
This is an item change event, not a structural change event. It indicates that any
reflection of the data at {groupPosition, childPosition}
is out of date and should be updated.
The item at {groupPosition, childPosition}
retains the same identity.
groupPosition | Position of the group item which contains the changed child |
---|---|
childPosition | Position of the child item in the group that has changed |
Notify any registered observers that the group item reflected at groupPosition
has been newly inserted. The group item previously at groupPosition
is now at
position groupPosition + 1
.
This is a structural change event. Representations of other existing items in the data set are still considered up to date and will not be rebound, though their positions may be altered.
groupPosition | Position of the group item which contains the inserted child |
---|---|
childPosition | Position of the newly inserted child item in the data set |
Notify any registered observers that the child item reflected at
fromGroupPosition, fromChildPosition
has been moved to toGroupPosition, toChildPosition
.
This is a structural change event. Representations of other existing items in the data set are still considered up to date and will not be rebound, though their positions may be altered.
fromGroupPosition | Previous group position of the child item. |
---|---|
fromChildPosition | Previous child position of the child item. |
toGroupPosition | New group position of the child item. |
toChildPosition | New child position of the child item. |
Notify any registered observers that the child item reflected at
groupPosition, fromChildPosition
has been moved to groupPosition, toChildPosition
.
This is a structural change event. Representations of other existing items in the data set are still considered up to date and will not be rebound, though their positions may be altered.
groupPosition | Group position of the child item. |
---|---|
fromChildPosition | Previous child position of the child item. |
toChildPosition | New child position of the child item. |
Notify any registered observers that the itemCount
child items starting at
position {groupPosition, childPosition}
have changed.
This is an item change event, not a structural change event. It indicates that any reflection of the data in the given position range is out of date and should be updated. The items in the given range retain the same identity.
groupPosition | Position of the group item which contains the changed child |
---|---|
childPositionStart | Position of the first child item in the group that has changed |
itemCount | Number of items that have changed |
Notify any registered observers that the itemCount
child items starting at
position {groupPosition, childPosition}
have changed.
This is an item change event, not a structural change event. It indicates that any reflection of the data in the given position range is out of date and should be updated. The items in the given range retain the same identity.
groupPosition | Position of the group item which contains the changed child |
---|---|
childPositionStart | Position of the first child item in the group that has changed |
itemCount | Number of items that have changed |
payload | A non-null list of merged payloads. Can be empty list if requires full update. |
Notify any registered observers that the currently reflected itemCount
child items starting at childPositionStart
have been newly inserted. The child items
previously located at childPositionStart
and beyond can now be found starting
at position childPositionStart + itemCount
.
This is a structural change event. Representations of other existing items in the data set are still considered up to date and will not be rebound, though their positions may be altered.
groupPosition | Position of the group item which contains the inserted child |
---|---|
childPositionStart | Position of the first child item that was inserted |
itemCount | Number of child items inserted |
Notify any registered observers that the itemCount
child items previously
located at childPositionStart
have been removed from the data set. The child items
previously located at and after childPositionStart + itemCount
may now be found
at oldPosition - itemCount
.
This is a structural change event. Representations of other existing items in the data set are still considered up to date and will not be rebound, though their positions may be altered.
groupPosition | Position of the group item which was the parent of the child item that was removed |
---|---|
childPositionStart | Previous position of the first child item that was removed |
itemCount | Number of child items removed from the data set |
Notify any registered observers that the child item previously located at childPosition
has been removed from the data set. The child items previously located at and after
childPosition
may now be found at oldGroupPosition - 1
.
This is a structural change event. Representations of other existing items in the data set are still considered up to date and will not be rebound, though their positions may be altered.
groupPosition | Position of the group item which was the parent of the child item that was removed |
---|---|
childPosition | Position of the child item that has now been removed |
Notify any registered observers that the children items contained in the group item at groupPosition
have changed.
This is an group item change event, not a structural change event. It indicates that any
reflection of the data at groupPosition
is out of date and should be updated.
The item at groupPosition
retains the same identity.
This method does not notify for the group item.
If the group has also changed, use notifyGroupAndChildrenItemsChanged(int)
instead.
groupPosition | Position of the group item which contains changed children |
---|---|
payload | A non-null list of merged payloads. Can be empty list if requires full update. |
Notify any registered observers that the children items contained in the group item at groupPosition
have changed.
This is an group item change event, not a structural change event. It indicates that any
reflection of the data at groupPosition
is out of date and should be updated.
The item at groupPosition
retains the same identity.
This method does not notify for the group item.
If the group has also changed, use notifyGroupAndChildrenItemsChanged(int)
instead.
groupPosition | Position of the group item which contains changed children |
---|
Notify any registered observers that the group and children items at groupPosition
have changed.
This is an group item change event, not a structural change event. It indicates that any
reflection of the data at groupPosition
is out of date and should be updated.
The item at groupPosition
retains the same identity.
groupPosition | Position of the group item which contains changed children |
---|
Notify any registered observers that the group and children items at groupPosition
have changed.
This is an group item change event, not a structural change event. It indicates that any
reflection of the data at groupPosition
is out of date and should be updated.
The item at groupPosition
retains the same identity.
groupPosition | Position of the group item which contains changed children |
---|---|
payload | A non-null list of merged payloads. Can be empty list if requires full update. |
Notify any registered observers that the group item at groupPosition
has changed
with an optional payload object.
This is an group item change event, not a structural change event. It indicates that any
reflection of the data at groupPosition
is out of date and should be updated.
The item at groupPosition
retains the same identity.
This method does not notify for children that are contained in the specified group.
If children have also changed, use notifyGroupAndChildrenItemsChanged(int, Object)
instead.
Client can optionally pass a payload for partial change. These payloads will be merged
and may be passed to adapter's onBindGroupViewHolder(RecyclerView.ViewHolder, int, int, List)
if the
item is already represented by a ViewHolder and it will be rebound to the same
ViewHolder. A notifyItemRangeChanged() with null payload will clear all existing
payloads on that item and prevent future payload until
onBindGroupViewHolder(RecyclerView.ViewHolder, int, int, List)
is called.
Adapter should not assume that the payload will always be passed to onBindGroupViewHolder(), e.g. when the view is not
attached, the payload will be simply dropped.
groupPosition | Position of the group item that has changed |
---|---|
payload | Optional parameter, use null to identify a "full" update |
Notify any registered observers that the group item at groupPosition
has changed.
This is an group item change event, not a structural change event. It indicates that any
reflection of the data at groupPosition
is out of date and should be updated.
The item at groupPosition
retains the same identity.
This method does not notify for children that are contained in the specified group.
If children have also changed, use notifyGroupAndChildrenItemsChanged(int)
instead.
groupPosition | Position of the group item that has changed |
---|
Notify any registered observers that the group item reflected at groupPosition
has been newly inserted. The group item previously at groupPosition
is now at
position groupPosition + 1
.
This is a structural change event. Representations of other existing items in the data set are still considered up to date and will not be rebound, though their positions may be altered.
groupPosition | Position of the newly inserted group item in the data set |
---|---|
expanded | Whether the groups will be inserted already expanded |
Notify any registered observers that the group item reflected at groupPosition
has been newly inserted. The group item previously at groupPosition
is now at
position groupPosition + 1
.
This is a structural change event. Representations of other existing items in the data set are still considered up to date and will not be rebound, though their positions may be altered.
groupPosition | Position of the newly inserted group item in the data set |
---|
Notify any registered observers that the group item reflected at
fromGroupPosition
has been moved to toGroupPosition
.
This is a structural change event. Representations of other existing items in the data set are still considered up to date and will not be rebound, though their positions may be altered.
fromGroupPosition | Previous position of the group item. |
---|---|
toGroupPosition | New position of the group item. |
Notify any registered observers that the currently reflected itemCount
group items starting at groupPositionStart
have been newly inserted and may be expanded
.
The group items previously located at groupPositionStart
and beyond can now be found starting
at position groupPositionStart + itemCount
.
This is a structural change event. Representations of other existing items in the data set are still considered up to date and will not be rebound, though their positions may be altered.
groupPositionStart | Position of the first group item that was inserted |
---|---|
itemCount | Number of group items inserted |
expanded | Whether the groups will be inserted already expanded |
Notify any registered observers that the currently reflected itemCount
group items starting at groupPositionStart
have been newly inserted. The group items
previously located at groupPositionStart
and beyond can now be found starting
at position groupPositionStart + itemCount
.
This is a structural change event. Representations of other existing items in the data set are still considered up to date and will not be rebound, though their positions may be altered.
groupPositionStart | Position of the first group item that was inserted |
---|---|
itemCount | Number of group items inserted |
Notify any registered observers that the itemCount
group items previously
located at groupPositionStart
have been removed from the data set. The group items
previously located at and after groupPositionStart + itemCount
may now be found
at oldPosition - itemCount
.
This is a structural change event. Representations of other existing items in the data set are still considered up to date and will not be rebound, though their positions may be altered.
groupPositionStart | Previous position of the first group item that was removed |
---|---|
itemCount | Number of group items removed from the data set |
Notify any registered observers that the group item previously located at groupPosition
has been removed from the data set. The group items previously located at and after
groupPosition
may now be found at oldGroupPosition - 1
.
This is a structural change event. Representations of other existing items in the data set are still considered up to date and will not be rebound, though their positions may be altered.
groupPosition | Position of the group item that has now been removed |
---|
Detach the android.support.v7.widget.RecyclerView instance and release internal field references.
This method should be called in order to avoid memory leaks.
Restore saves state. See restoreState(android.os.Parcelable, boolean, boolean)
.
(This method does not invoke any hook methods and listener events)
savedState | The saved state object |
---|
Restore saves state.
This method is useful when the adapter can not be prepared (because data loading may takes time and processed asynchronously) before creating this manager instance.
savedState | The saved state object |
---|---|
callHooks | Whether to call hook routines
(onHookGroupExpand(int, boolean, Object) ,
onHookGroupCollapse(int, boolean, Object) ) |
callListeners | Whether to invoke RecyclerViewExpandableItemManager.OnGroupExpandListener and/or RecyclerViewExpandableItemManager.OnGroupCollapseListener listener events
|
Scroll to a group.
groupPosition | Position of the group item |
---|---|
childItemHeight | Height of each child item height |
Scroll to a group.
groupPosition | Position of the group item |
---|---|
childItemHeight | Height of each child item height |
topMargin | Top margin |
bottomMargin | Bottom margin |
path | Adapter path for the wrapped adapter returned by the createWrappedAdapter(RecyclerView.Adapter) .
|
Scroll to a group.
groupPosition | Position of the group item |
---|---|
childItemHeight | Height of each child item height |
topMargin | Top margin |
bottomMargin | Bottom margin |
Scroll to a group with specifying total children height.
groupPosition | Position of the group item |
---|---|
totalChildrenHeight | Total height of children items |
topMargin | Top margin |
bottomMargin | Bottom margin |
Scroll to a group with specifying total children height.
groupPosition | Position of the group item |
---|---|
totalChildrenHeight | Total height of children items |
topMargin | Top margin |
bottomMargin | Bottom margin |
path | Adapter path for the wrapped adapter returned by the createWrappedAdapter(RecyclerView.Adapter) .
|
Sets default group items expanded state
expanded | default group expanded state (true: expanded, false: collapsed) |
---|
Register a callback to be invoked when an group item has been collapsed.
listener | The callback that will be invoked. |
---|
Register a callback to be invoked when an group item has been expanded.
listener | The callback that will be invoked. |
---|