LtRecyclerView:自带上拉下拉,能增加头条目和尾条目的RecyclerView
LtRecyclerView:自帶上拉下拉,能增加頭條目和尾條目的RecyclerView
點(diǎn)擊查看2.x版本,功能更強(qiáng)大
主要功能:
- 自帶上拉加載和下拉刷新
- 可以添加100條頭條目和尾條目(其實(shí)是可以無(wú)限的)
- 可以設(shè)置沒(méi)有條目時(shí)展示的View
- 示例:
Android Studio使用方法
-
1.下載arr包:https://pan.baidu.com/s/1f0H2Ti-GDCp_xyFTfM8Zhw
-
2.引用
把ltviews.aar放入libs文件夾
在app的Build.Gradle中寫(xiě):
在app的Build.Gradle中引用:
compile name: 'ltviews-1.3.2', ext: 'aar'和
compile 'com.android.support:recyclerview-v7:25.3.1'并點(diǎn)擊按鈕重新構(gòu)建
- 3.在XML中使用(或者直接new LTRecyclerView())
-
4.設(shè)置展示的方式
**rv.setRVOrientation(LtrvOrientation ltrvOrientation);**支持ListView類型:'LtrvOrientation.VERTICAL_LISTVIEW’和GridView類型:‘LtrvOrientation.VERTICAL_GRIDVIEW’.
如果是多列的,可以使用重載的方法(最后一個(gè)參數(shù)表示要顯示多少列) -
5.適配器類需要繼承LtAdapter,其中的方法都和原生方法名類似,用法一樣
-
6.設(shè)置上拉和下拉監(jiān)聽(tīng):ltrv.setOnUpAndDownListener(OnUpAndDownListener onUpAndDownListener);
其中**up()**方法是上拉加載時(shí)調(diào)用,**down()**方法是下拉刷新是調(diào)用. -
7.設(shè)置條目點(diǎn)擊事件:適配器.setOnRvItemClickListener()
-
8.取消下拉:ltrv.getSwipeRefreshLayout().setRefreshing(false);
-
9.設(shè)置上拉時(shí)沒(méi)有更多數(shù)據(jù)了:適配器.setRefresh(false); true是上拉加載的效果(每次調(diào)用都會(huì)執(zhí)行**.notifyDataSetChanged();**方法)
-
10.混淆代碼
##示例代碼
LtAdapter adapter = new LtAdapter(getActivity()) {@Overridepublic RecyclerView.ViewHolder onLtCreateViewHolder(ViewGroup viewGroup, int i) {return null;}@Overridepublic int getLtItemCount() {return 0;}@Overridepublic void onLtBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {}};rv.setRVOrientation(getActivity(), LtrvOrientation.VERTICAL_LISTVIEW).setNoItemText("暫無(wú)數(shù)據(jù)").setAdapter(adapter).setOnUpAndDownListener(new OnUpAndDownListener() {@Overridepublic void up() {//上拉加載回調(diào)}@Overridepublic void down() {//下拉刷新回調(diào)}});adapter.setOnRvItemClickListener(new OnRvItemClickListener() {@Overridepublic void onItemClick(View view, int i) {//條目點(diǎn)擊事件}});ps:在Kotlin的加持下,適配器(單類型條目)可以寫(xiě)成這樣:
//父類的適配器,有上拉加載的View abstract class BaseLtAdapterOneType<T>(val context: Context, val list: ArrayList<T>?, val itemLayoutId: Int) : LtAdapter(context) {abstract fun setData(v: View, b: T, i: Int)override fun onLtBindViewHolder(p0: RecyclerView.ViewHolder?, p1: Int) {setData((p0 as BaseLtViewHolder).itemView, list!![p1], p1)}override fun getLtItemCount(): Int = list?.sizeoverride fun onLtCreateViewHolder(p0: ViewGroup?, p1: Int): RecyclerView.ViewHolder = BaseLtViewHolder(LayoutInflater.from(p0?.context).inflate(itemLayoutId, p0, false)!!)} class BaseLtViewHolder(view: View) : RecyclerView.ViewHolder(view) //使用 class MAdapter(context: Context, list: ArrayList<InfoBean>?) : BaseLtAdapterOneType<InfoBean>(context, list, item_layout的id) {override fun setData(v: View, b: InfoBean, i: Int) {v.tvTitle.text=b.title//直接使用item的view內(nèi)的id,然后使用bean類的屬性賦值,i為position(為了簡(jiǎn)單寫(xiě),所以都用了單個(gè)字母的簡(jiǎn)寫(xiě))} }更多方法
-
rv.setNoItemText():若沒(méi)有條目則展示的文字
xml中:app:noItemText=“暫無(wú)數(shù)據(jù)” -
設(shè)置沒(méi)有條目時(shí)展示的view:ltrv.setNoItemView(view);(會(huì)自動(dòng)設(shè)置居中)
xml中:app:noItemView="@drawable/ic_launcher" -
可以最多添加100個(gè)頭部的布局:適配器.addHeadView(view) 或者 適配 器.addHeadView(view,位置索引);
刪除是適配器.removeHeadView(view) 或者適配器.removeHeadView(位置索引);(注意:如果這些方法是在setAdapter()方法之后調(diào)用的,記得調(diào)用ltrv.notifyDataSetChanged();) -
也可以最多添加100個(gè)底部布局:適配器.addTailView();同理也可以刪除.(其實(shí)是可以做到 無(wú)限制的,但感覺(jué)100個(gè)就夠用了,而且注意不要返回12345500到12345800之間的type, 不然會(huì)有沖突)
-
若想監(jiān)聽(tīng)沒(méi)有條目了也可以單獨(dú)設(shè)置沒(méi)有條目時(shí)的監(jiān)聽(tīng):適配器.addOnNoItemListener();
-
如果使用默認(rèn)的上拉布局,則new適配器時(shí)使用上下文的構(gòu)造方法;
如果使用自定義的上拉布局,則new適配器時(shí)傳入一個(gè)View對(duì)象,(**注意:**加載中的view的id必須為ll1,沒(méi)有更多數(shù)據(jù)的view的id必須為ll2,而且沒(méi)有更多數(shù)據(jù)的視圖默認(rèn)設(shè)置為隱藏的) -
獲取下拉刷新的控件:
- 設(shè)置下拉刷新的顏色:
- 設(shè)置背景顏色
- 獲取內(nèi)部的RecyclerView控件:ltrv.getRecyclerView();
- 設(shè)置默認(rèn)分割線:rv.addItemDecoration_line()或者rv.addItemDecoration_drawable()
xml:app:dividerHeight=“1px” 設(shè)置高度,默認(rèn)顏色
app:dividerColor=“000000” 設(shè)置分割線顏色
app:dividerDrawable="@drawable/ic_launcher" 設(shè)置圖片為分割線 - drawable文件夾里放lt_loading.jpg或.png可以替換掉上拉的進(jìn)度條圖片
- layout文件夾里放lt_up_loading.xml文件可以替換掉上拉的整體布局,不過(guò)要注意刷新中的ViewGroupId需要是ll1,刷新成功的ViewGroupId需要時(shí)ll2
提交BUG請(qǐng)留言或發(fā)郵箱(lt.dygzs@qq.com),手動(dòng)滑稽
總結(jié)
以上是生活随笔為你收集整理的LtRecyclerView:自带上拉下拉,能增加头条目和尾条目的RecyclerView的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Win10不能使用Genymotion模
- 下一篇: RecyclerView添加头条目显示空