清單滑動過程中,分組标題可以固定在頂部,同時清單支援左右滑動!效果圖如下:

那麼該如何實作呢,一開始,我是打算使用swipeactionadapter+stickylistview 來做,嘗試一番後,發現左右滑動listview
先熟悉下這兩個庫的使用,然後在跟着繼續學習如何把這兩個庫融合到一起實作上面的效果!
1. 建立項目,分别導入swipeactionadapter和pinnedheaderlistview兩個庫,這樣友善直接對源碼進行修改。
這裡,因為之後修改代碼時,swipeactionadapter和pinnedheaderlistview之間也會有些依賴關系,是以我精簡了一些,直接把swipeactionadapter拷貝到sample子產品下,友善修改引用。(到最後下載下傳源碼即可看到最重的項目)
2. 使用pinnedheaderlistview,建立頭部可懸浮顯示的清單
2.1 清單擴充卡
2.2 填充資料,實作基本的懸浮頭部清單
3. 在pinnedheaderlistview基礎上,擴充swipeactionadapter
3.1 修改swipeactionadapter,讓其實作pinnedheaderlistview.pinnedsectionedheaderadapter,并實作其中的方法
注1: 在swipeactionadapter中,我們把pinnedheaderlistview.pinnedsectionedheaderadapter接口中的方法,完全交給了通過構造方法傳遞過來的listadapter進行處理,swipeactionadapter隻做了一層封裝的作用。
注2:修改了public boolean hasactions(int position, swipedirection direction) 方法,因為,如果不修改的話,左右滑動時,連标題欄也可以滑動了,是以在該方法中,我們判斷如果滑動的事标題欄,則禁止其滑動。
3.2 實作分組且可左右滑動的清單
4.
為清單添加事件處理
4.1 在onswipe(int[] positionlist, swipedirection[] directionlist)方法中處理滑動事件
其中,madapter是上面擴充的swipeactionadapter的執行個體。通過madapter,可以擷取滑動的标題的位置、資料項在标題中位置。 之後,就可以操作資料了。
4.2 清單的點選事件
如此這般,就ok啦!歡迎指正!
如有疑問,請留言,共同探讨。