国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

PullToRefreshRecyclerView——帶上拉刷新下拉加載功能的RecyclerView

2019-11-09 15:47:25
字體:
供稿:網(wǎng)友

現(xiàn)在ListView和GridView逐漸被RecyclerView替代,之前基于ListView和GridView的刷新加載框架也已經(jīng)過時,這里介紹基于RecyclerView的刷新加載框架——PullToRefreshRecyclerView,先看效果。

這里寫圖片描述

1. 在Module下的build.gradle中添加依賴

compile 'com.androidkun:pulltorefreshrecyclerview:1.0.4'

2. 在布局文件中添加PullToRefreshRecyclerView控件

<com.androidkun.PullToRefreshRecyclerView android:id="@+id/pullToRefreshRV" android:layout_width="match_parent" android:layout_height="match_parent"/>

3. 初始化PullToRefreshRecyclerView并設(shè)置屬性和回調(diào)

pullToRefreshRV = (PullToRefreshRecyclerView) findViewById(R.id.pullToRefreshRV); LinearLayoutManager layoutManager = new LinearLayoutManager(this); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); pullToRefreshRV.setLayoutManager(layoutManager); adapter = new ModeAdapter(this, R.layout.item_mode,data); pullToRefreshRV.setAdapter(adapter); //設(shè)置是否顯示上次刷新的時間 pullToRefreshRV.displayLastRefreshTime(true); //設(shè)置刷新回調(diào) pullToRefreshRV.setPullToRefreshListener(this); //主動觸發(fā)下拉刷新操作 //pullToRefreshRV.onRefresh();

如果想使用網(wǎng)格列表,則相應(yīng)設(shè)置布局管理者為網(wǎng)格布局管理者就行了

GridLayoutManager gridLayoutManager = new GridLayoutManager(this,2); recyclerView.setLayoutManager(gridLayoutManager);

此外也可以通過 setRefreshingResource(int resId)setLoadMoreResource(int resId)自定義刷新箭頭和加載的圖標(biāo)。

4.處理刷新加載邏輯

@Override public void onRefresh() { pullToRefreshRV.postDelayed(new Runnable() { @Override public void run() { pullToRefreshRV.setRefreshComplete(); //模擬沒有數(shù)據(jù)的情況 data.clear(); adapter.notifyDataSetChanged(); } }, 3000); } @Override public void onLoadMore() { pullToRefreshRV.postDelayed(new Runnable() { @Override public void run() { pullToRefreshRV.setLoadMoreComplete(); //模擬加載數(shù)據(jù)的情況 int size = data.size(); for (int i = size; i < size + 4; i++) { data.add("" + i + i + i + i); } adapter.notifyDataSetChanged(); } }, 3000); }

框架中提供封裝好的BaseAdapter,減少編寫相同的代碼,提高開發(fā)效率,Demo中的ModeAdapter就是繼承了BaseAdapter,代碼如下:

public class ModeAdapter extends BaseAdapter { public ModeAdapter(Context context, int layoutId, List datas) { super(context, layoutId, datas); } @Override public void convert(ViewHolder holder, Object o) { holder.setText(R.id.textView, (String) o); }}

——————————————————————————————————————————

Source

Demo


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 灌阳县| 南投市| 乐清市| 承德市| 高邮市| 临颍县| 武宁县| 保亭| 和龙市| 武宣县| 改则县| 本溪市| 襄汾县| 南京市| 白河县| 乳山市| 巴东县| 黔江区| 青神县| 奉化市| 鸡泽县| 牟定县| 聂拉木县| 陵川县| 公主岭市| 桃源县| 方山县| 青岛市| 鹤山市| 平潭县| 浙江省| 岱山县| 呼玛县| 宜宾市| 从江县| 兴海县| 桓台县| 介休市| 长丰县| 乌海市| 永年县|