1. 程式人生 > >RecycleView條目點選事件的實現方法

RecycleView條目點選事件的實現方法

/**
 * RecyclerView 是5.0推出的一個元件,存在於V7包中,使用需要導包(新增依賴包)
 * Recycler 回收,複用
 * RecyclerView 就是迴圈利用的View,就是我們Android中ListView的一個昇華
 *
 * RecyclerView中item最外層的佈局引數是生效的,而ListView的是不生效的
 *      更推薦我們書寫具體值去載入佈局
 *
 *  RecyclerView是一個比ListView更加靈活更加高效的介面卡型別控制元件
 *      適用於載入一系列的資料集
 *
 *      RecyclerView 與以前學過的ListView,GridView,ViewPager 有什麼區別呢?
 *          將顯示方式抽離,使用LayoutManager進行控制
 *      RecyclerView預設提供三種佈局管理器
 *           三種佈局管理器都支援橫縱向排列
 *          ① LinearLayoutManager 線性佈局管理器,實現ListView,ViewPager效果
 *              Gallery 畫廊(過時了)
 *          ② GridLayoutManager 網格佈局管理器,實現GridView效果
 *          ③ StaggeredGridLayoutManager 瀑布流佈局管理器
 *
 *      缺點:點選事件丟失    

 *

我們可以再adapter裡面對條目直接進行設定點選事件    首先是讓adapter實現 View.OnClickListener

然後重寫兩個重要的方法 

 /**
     *  依附在RecyclerView上的時候呼叫可以通過該方法獲得recyclerView
     *      繫結
     */
    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
        Log.e(TAG, "onAttachedToRecyclerView: "+ recyclerView );
        mRecyclerView = recyclerView;
    }


    @Override
    public void onDetachedFromRecyclerView(RecyclerView recyclerView) {
        super.onDetachedFromRecyclerView(recyclerView);
        mRecyclerView = null;
    }

接下來是點選事件

@Override
    public void onClick(View v) {
   //通過該方法 獲得被點選條目的位置   關鍵就在這裡 
            int position = mRecyclerView.getChildAdapterPosition(v);
            Log.e(TAG, "onClick: " + position);
        
        ..得到位置之後就可以隨意設定點選事件了 
    }