爲SwipeMenuListView 打上註釋 (僅供參考)

爲SwipeMenuListView 打上註釋 (僅供參考)

1.首先 感謝提供開源的 大大 .
2.代碼片段

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
     SwipeMenuLayout layout = null;
     if (convertView == null) {
        //獲取我們自己定義的item 的佈局。
         View contentView = mAdapter.getView(position, convertView, parent);
         //生成一個新的menu 對象。
         SwipeMenu menu = new SwipeMenu(mContext);
         //設置數據的對象的類型  依靠這個字段來 生成menu的類型  
         //demo裏面 的DifferentMenuActivity 這個類裏就用到這了這個參數。
         menu.setViewType(getItemViewType(position));
         //生成Item的方法  在本類中又一個 實現。這個其實是需要自己實現的  以便自己定義 自己Item 按鈕的 屬性(背景,顏色 字體大小之類的)。
         createMenu(menu);
         //生成新的ViewGroup 只是在我們的item 佈局上添加了 createMenu(menu) 中生成的menu。該(SwipeMenuView)繼承自Linearlayout
         //最終展示在界面上的Item佈局 就是這個。(我們滑動的時候展示出來的佈局)
         SwipeMenuView menuView = new SwipeMenuView(menu,
                 (SwipeMenuListView) parent);
         //給展示到界面上的Item添加事件
         menuView.setOnSwipeItemClickListener(this);
         //獲取SwipeMenuListView(這個對象 是我們寫在界面裏面的SwipeMenuListView)對象
         //強轉是爲了  使用該類中自定義的 插入器(即listView.getCloseInterpolator())。
         SwipeMenuListView listView = (SwipeMenuListView) parent;
         //最終展示在界面上的item 上下 兩層 表面上是我們 自己定義的佈局 ,當我們滑動item的時候 就會展示 它右側的 SwipeMenuView。
         //而SwipeMenuView 本生是一個繼承linearLayout 所以我們可以 隨意添加側滑出來 按鈕的個數
         //這個個數在SwipeMenu 中的List<SwipeMenuItem> mItems 的Size 就是數目。
         layout = new SwipeMenuLayout(contentView, menuView,
                 listView.getCloseInterpolator(),
                 listView.getOpenInterpolator());
         //記錄Item的posion。
         layout.setPosition(position);
     } else {
         layout = (SwipeMenuLayout) convertView;
         //當view 處於打開狀態時 滑動到 不可見時關閉它。
         layout.closeMenu();
         //時刻都要記錄位置。
         layout.setPosition(position);
         //生成一個View 單好像沒有用過這個view  (我也迷糊)
         View view = mAdapter.getView(position, layout.getContentView(),
                 parent);
     }
     //這個是最新版本才加入的東西   由於我很早之前用過這個開源覺得不錯 所以最近閒的無事才準備寫個註釋 這個應該是新代碼(之前沒有)。
     //看樣子是 現在支持 手動設置是否可 滑動。  
     if (mAdapter instanceof BaseSwipListAdapter) {
         boolean swipEnable = (((BaseSwipListAdapter) mAdapter).getSwipEnableByPosition(position));
         layout.setSwipEnable(swipEnable);
     }
     return layout;
 }

3.其他代碼就不在 貼出來 所有的都在 我整理的 文件中
4.加註釋的 源碼地址https://github.com/zhoulinxue/SwipeMenuListView.git
5.原項目源碼地址https://github.com/baoyongzhang/SwipeMenuListView

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章