1、首次加載全部展開:
mExpandableListView.setAdapter(mExpandableListViewAdapter);
for (int i = 0; i < mDataGroup.size(); i++) {
mExpandableListView.expandGroup(i);
}
提醒:加載前别忘了判斷adapter是否為空和有沒有Group資料哦
2、不能點選收縮:
mExpandableListView.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
return true;
}
});
把ExpandableListView的組點選事件屏蔽
3、ExpandableListView的長按事件
網上的資料不少,但是沒幾個管用的,最後找到一個确實可用的,在這分享下:
(1)
//長按事件
mExpandableListView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
menu.setHeaderTitle("選擇操作");
menu.add(0, DOWNLOAD_RETRY, 0, "重試");
menu.add(0, DOWNLOAD_DEL, 0, "删除");
menu.add(0, DOWNLOAD_START, 0, "啟動");
}
});
(2)
/**
* 長按菜單響應函數
*/
@Override
public boolean onContextItemSelected(MenuItem item) {
//關鍵代碼
ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) item.getMenuInfo();
int type = ExpandableListView.getPackedPositionType(info.packedPosition);
if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) { //上面的type設定這裡類型的判定!這裡是child判定!
int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); //在child判定裡面,擷取該child所屬group!
int childPos = ExpandableListView.getPackedPositionChild(info.packedPosition); //在child判定裡面,擷取該child所屬position!
switch (item.getItemId()) {
case DOWNLOAD_RETRY:
makeTextShort("我是重試");
break;
case DOWNLOAD_DEL:
makeTextShort("我是删除");
break;
case DOWNLOAD_START:
makeTextShort("我是啟動");
default:
break;
}
return true;
}
return false;
}
4、去掉 ExpandableListView Group 上的箭頭
可以 xml 布局中
android:groupIndicator="@null"
也可以 java 代碼中
mExpandableListView.setGroupIndicator(null);
5、目前上面浮動的TextView沒有實作,iOS的貌似是叫 IphoneTreeView