Android - ExpandableListView

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處理。