RecyclerView SwipeRefreshLayout下拉刷新上拉更多 + 简写万能adapter + 增加自定义headview
优点:
- 控件内部维护翻页page和size,初始时设置好一页数据size(默认20条)。再由此判断刷新或加载时如果服务端没有返回size条数据就是最后一行,然后控件内部禁止翻页加载更多状态,再次刷新时重新恢复可加载更多状态。
- 空,异常,正常三种显示状态切换。只有当刷新时,控件维护的List为空时自动切换为空视图,当List不为空时,自动切换为正常视图。加载更多时,由于List中有数据,始终为正常视图。
[2017/12/25]
增加完整demo演示。数据来源 ONE api。
使用该项目app:Mind:提高专注度
compile 'com.w.support:refreshlayout-view:1.0' (暂时没有上传jcenter最新版)
<com.refreshlayoutview.RefreshLayoutView
android:id="@+id/rf_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
⬇⬇⬇此处有图片(3.5M)加载慢⬇⬇⬇
⬆⬆⬆此处有图片(3.5M)加载慢⬆⬆⬆
setPageSize(int pageSize)
new RefreshLayoutAdapter<List>(this, R.layout.recycleritem_layout)
new RefreshLayoutAdapter<List>(this, R.layout.recycleritem_layout, headerView)
setEnabledUP(boolean);
setEnabledDown(boolean);
onRefreshing();
onStopRefreshing();
showConetntView();
showEmptyView();
showErrorView();
setEmptyView(View emptyView);
setEmptyView(@DrawableRes int imgRes, @StringRes int msg)
setErrorView(View errorView);
setErrorView(@DrawableRes int imgRes, @StringRes int msg);
postMsgDataRefreshed(list);
postMsgDataLoadedMore(list);
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.bigkoo:convenientbanner:2.0.5'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'