爲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