recyclerview完整使用

2021-08-03 10:39:16 字數 2480 閱讀 4028

1.和listview一樣,建立資料模型和子項布局檔案

2.自定義介面卡:

首先在介面卡類中自定義viewholder內部類,然後將其作為泛型傳入類的宣告中:

class myviewholder extends recyclerview.viewholder

}

public class classadapter extends recyclerview.adapter

@override

public void onbindviewholder(myviewholder holder, final int position)

if (listener!=null)

});holder.itemview.setonlongclicklistener(new view.onlongclicklistener()

});}

}@override

public int getitemcount()

3.增加監聽事件:

因為rv自身是沒有設定監聽的方法的,所以要自定義監聽事件並直接設定在viewholder的view上(見上面的onbindviewholder中的設定)。這裡的思路是在介面卡內部自定義乙個監聽介面傳入:

public inte***ce onitenclicklistener 

public void setlisenter(classadapter.onitenclicklistener lisenter)

4.使用:

rv使用的時候除了要設定介面卡外還必須設定layoutmanager:

rv.setlayoutmanager(new linearlayoutmanager(this));
這個線性布局設定還有乙個多個引數的方法,可以指定布局方向。

5.設定分割線:

分割線也沒有現成的,必須自定義乙個類,這個我沒有仔細研究,直接從網上找的乙個分割線:

public class kopitemdecoration extends recyclerview.itemdecoration ;

public static final int horizontal_list = linearlayoutmanager.horizontal;

public static final int vertical_list = linearlayoutmanager.vertical;

private drawable mdivider;

private int morientation;

public kopitemdecoration(context context, int orientation)

public void setorientation(int orientation)

morientation = orientation;

}@override

public void ondraw(canvas c, recyclerview parent) else

}public void drawvertical(canvas c, recyclerview parent)

}public void drawhorizontal(canvas c, recyclerview parent)

}@override

public void getitemoffsets(rect outrect, int itemposition, recyclerview parent) else

}}

然後設定:
rv.additemdecoration(new kopitemdecoration(this,kopitemdecoration.vertical_list));
可以看到,這個分割線還可以設定方向。

6.底部載入:

private boolean isslidetobottom(recyclerview recyclerview)

然後要在rv的滑動監聽方法中不斷呼叫這個方法進行判斷:

rv.addonscrolllistener(new recyclerview.onscrolllistener() 

@override

public void onscrolled(recyclerview recyclerview, int dx, int dy)

}});

rv.scrolltoposition(currentposition);

這裡傳入的position是頁面頂部顯示的position,自己除錯就可以了。

此外還可以在底部放乙個初始為gone的載入進度條qaq

recyclerView動畫解讀

我彷彿在逗我笑,就算繼承了,還是要呼叫setanimator方法,這樣還是會建立viewholder 那麼,自己給view設定動畫是否可以呢?我們知道,recyclerview是通過notifyitem來改變item的狀態的,這就是傳說中的觀察者模式,那麼我們沒有 notifyitemchanged...

RecyclerView 控制項使用

recyclerview的任務僅限於 和定位螢幕上的列表項,對於列表項的內容顯示我們還需要借助adapter子類和viewholder子類。viewholder的作用是容納view檢視。recyclerview工作需要layoutmanager支援。recyclerview檢視建立好後,要立即交給l...

RecyclerView 單行選擇

概述 相信大家在平時工作中用到listview recyclerview 中進行單行選中高亮 實現recyclerview單行選擇其實挺簡單,將狀態儲存到map集合中,有關recyclerview以後本人會詳細介紹 boolean res false 必須判斷是否為空。而且必須放在前面 ischec...