Android - ExpandableListView
有一個需求,要做折疊的ListView 畫面,
我以為要自己先刻一個ListView,每個Item裡面還有ListView
但沒想到這種Group/Children的型式,有原生物件
一開始,我參考下面這篇文章複製去改寫
http://blog.csdn.net/redoffice/article/details/7777504
但可能還有一些不足的地方
可再參考以下這篇文章
http://custom-android-dn.blogspot.tw/2013/01/how-to-create-custom-expandablelistview.html
可能最好的是下面這篇文章
http://mrraybox.blogspot.tw/2014/01/android-expandablelist.html
不多說,只說重點好了。
一、因為原生的,就算去繼承BaseExpandableListAdapter,改寫他的
getChildView
getGroupView
GroupView的部分,仍有原生的折疊圖示,
要將他消失,則只需要設定
//取消mExpListView的系统箭头
mListLoc.setGroupIndicator(null);
//取消listview divider 分割线,可以自己在item.xml自己写<View w="fillp" h="1px" bg="oneColor">
mListLoc.setDividerHeight(0);
另外children的部分
可能用他原本的setOnChildClickListener,沒什麼效果。
則需要另外getChildView取得整串的LinearLayout,設定OnClick事件處理。
我做的事情可能挺複雜的,以上文章還無法解決我的需求。
如勾選狀態及資料設定,及勾選後,要改變顯示文字等
這要自己想辦法,在Adapter 建構子,我就將需要的狀態物件HashMap<String,String>、資料來源及顯示的文字元件TextView放進去。
如果要在複雜一點要控制到行為跟外部互動的話,建議寫個Interface 及 setListener的方法,將外部的事件處理丟給Adapter處理。