我們都知道Android缺省的ExpandableListView的group header無法固定在界面上,當向下滾動後,不能對當前顯示的那些child 指示出它們歸屬於哪個group,在網上搜了很多關於仿手機QQ好友分組效果的ExpandableListView,發現都不盡如意,於是乎在別人的基礎上改進了一點點,其實原理還是差不多的,只是增加了往上擠出去的動畫效果,而且更加簡單,只不過還是沒有完全到達跟QQ一樣的效果,希望有高手能實現更加逼真的效果,下面我們先看看效果圖:
我這裡沒有把ExpandableListView獨立出來形成一個新的控件,跟網上很多朋友一樣,監聽OnScrollListener事件,當group不是在第一個位置時,就把我們頭部的那個indicator顯示出來,並且讓它的view跟當前child所在group的view一樣的,然後再增加一個點擊關閉組的事件,即達到了簡單的仿QQ好友分組的效果。
下面我們先來看看主要的布局文件:main.xml,下面那個topGroup的FrameLayout就是我們的指示器。
- <?xmlversion="1.0"encoding="utf-8"?>
- <FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <ExpandableListView
- android:id="@+id/expandableListView"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- </ExpandableListView>
- <FrameLayout
- android:id="@+id/topGroup"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
- </FrameLayout>
- </FrameLayout>