expandGroup can now animate

Add a boolean to have expandGroup animate the same as
 performItemClick does

Change-Id: I652c6fa8f9a7b527572337b11900d653b5285352
This commit is contained in:
John Reck
2011-05-19 10:09:36 -07:00
parent 706804e2e4
commit 63f46e7145
2 changed files with 26 additions and 2 deletions

View File

@@ -24010,6 +24010,7 @@ package android.widget {
ctor public ExpandableListView(android.content.Context, android.util.AttributeSet, int);
method public boolean collapseGroup(int);
method public boolean expandGroup(int);
method public boolean expandGroup(int, boolean);
method public android.widget.ExpandableListAdapter getExpandableListAdapter();
method public long getExpandableListPosition(int);
method public int getFlatListPosition(long);

View File

@@ -599,12 +599,35 @@ public class ExpandableListView extends ListView {
* was already expanded, this will return false)
*/
public boolean expandGroup(int groupPos) {
boolean retValue = mConnector.expandGroup(groupPos);
return expandGroup(groupPos, false);
}
/**
* Expand a group in the grouped list view
*
* @param groupPos the group to be expanded
* @param animate true if the expanding group should be animated in
* @return True if the group was expanded, false otherwise (if the group
* was already expanded, this will return false)
*/
public boolean expandGroup(int groupPos, boolean animate) {
PositionMetadata pm = mConnector.getFlattenedPos(ExpandableListPosition.obtain(
ExpandableListPosition.GROUP, groupPos, -1, -1));
boolean retValue = mConnector.expandGroup(pm);
if (mOnGroupExpandListener != null) {
mOnGroupExpandListener.onGroupExpand(groupPos);
}
if (animate) {
final int groupFlatPos = pm.position.flatListPos;
final int shiftedGroupPosition = groupFlatPos + getHeaderViewsCount();
smoothScrollToPosition(shiftedGroupPosition + mAdapter.getChildrenCount(groupPos),
shiftedGroupPosition);
}
pm.recycle();
return retValue;
}