天天看點

ExpandableListView的首次加載全部展開,并且點選Group不收縮,去掉Group左邊的箭頭

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