APi
mExpandableListView.expandGroup(0);
public class NormalExpandActivity extends AppCompatActivity {
private static final String TAG = "NormalExpandActivity";
private ExpandableListView mExpandableListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_expand);
mExpandableListView = (ExpandableListView) findViewById(R.id.expandable_list);
final NormalExpandableListAdapter adapter = new NormalExpandableListAdapter(Constant.BOOKS, Constant.FIGURES);
mExpandableListView.setAdapter(adapter);
adapter.setOnGroupExpandedListener(new OnGroupExpandedListener() {
@Override
public void onGroupExpanded(int groupPosition) {
expandOnlyOne(groupPosition);
}
});
// 设置分组项的点击监听事件
mExpandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
Log.d(TAG, "onGroupClick: groupPosition:" + groupPosition + ", id:" + id);
// 请务必返回 false,否则分组不会展开
return false;
}
});
mExpandableListView.expandGroup(0);
// 设置子选项点击监听事件
mExpandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
Toast.makeText(NormalExpandActivity.this, Constant.FIGURES[groupPosition][childPosition], Toast.LENGTH_SHORT).show();
return true;
}
});
}
// 每次展开一个分组后,关闭其他的分组
private boolean expandOnlyOne(int expandedPosition) {
boolean result = true;
int groupLength = mExpandableListView.getExpandableListAdapter().getGroupCount();
for (int i = 0; i < groupLength; i++) {
if (i != expandedPosition && mExpandableListView.isGroupExpanded(i)) {
result &= mExpandableListView.collapseGroup(i);
}
}
return result;
}
}