關於 RecycleView 點擊事件接口的定義

RecycleView 的點擊事件,一般是通過定義接口實現,接口定義如下:

/**
 * 一般的RecycleView點擊事件接口
 *
 * @param <K> 數據源
 */
public interface CommonOnRecycleViewItemClickListener<K> {
     void CommonOnRecycleViewItemClick(View view, int position, K dataSource);
}

描述一個場景:

如果有一個頁面,含有兩個以上的不同佈局的RecycleView(這裏就認爲產品要求必須要按這樣實現),而且兩個RecycleView佈局不是相鄰的,總之,先認爲 :是不能在一個adapter裏面通過ViewType來區分顯示不同的佈局,只能分開來寫各自的adapter。那麼這每個RecycleView的點擊事件,如何定義呢?

這裏給一個參考:

/**
 * 首頁點擊事件的接口
 *
 * @param <T>
 * @param <K>
 */
public interface FirstPageOnRecyclerViewItemClickListener<T, K> extends CommonOnRecycleViewItemClickListener<K> {
    /**
     * 業務類型
     */
    enum BusinessType {
        Default,//不區分,適合只有一個adapter 的情況
        PerfectCourse,//精品課程
        NewCourse//新課程
    }

    /**
     * 點擊事件
     *
     * @param view
     * @param position
     * @param mDataK   數據源
     */
    void mRecyclerViewOnItemClick(View view, int position, T mDataK, BusinessType businessType);
}

這裏就可以描述有兩類不同的點擊處理事件,接口可以適當的擴展,並採用泛型來定義數據源,以達到我們的業務需求。不知上面這種寫法,你有什麼看法嗎?歡迎評論。

 

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