700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 使用SmartRefreshLayout下拉刷新框架实现加载更多

使用SmartRefreshLayout下拉刷新框架实现加载更多

时间:2019-05-05 04:00:20

相关推荐

使用SmartRefreshLayout下拉刷新框架实现加载更多

使用SmartRefreshLayout可以实现recyclerview的下拉刷新和上拉加载更多,但是有时候在使用上拉加载更多时,不同的json格式需要不同的判断方法

1、后台根据每次相加的totalElements的个数作为请求的参数即pageSize+=12 pageNo=1

{"content":[{"cancel":false,"dateCreated":1571369847000,"draft":true,"id":728316,"inApp":true,"inPush":true,"lastUpdated":1571369847000,"messageType":"USER_FOLLOW","messageTypeIndex":503,"module":{"followStatus":2,"imgUrl":"http://chongming-fs.oss-cn-/test/APP/545917/user/cd71c19b-f0fb-43eb-9e7f-630fc98dd1cf.jpg","nickname":"*test002","petCategoryName":"哈士奇","petId":1663286,"petName":"啦咯啦咯啦咯","userId":545917},"moduleId":545917,"read":true,"schedule":false,"sendTime":1571369847000,"senderImgUrl":"http://chongming-fs.oss-cn-/test/APP/545917/user/cd71c19b-f0fb-43eb-9e7f-630fc98dd1cf.jpg","senderNickName":"*test002","status":"waiting","targetModule":{"messageType":"USER_FOLLOW","status":"CLOSED","targetModuleId":547148},"targetModuleId":547148,"text":"test02关注了你"}],"totalElements":6,"totalPages":1}

1.1、举个例子

布局样式

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#fff7f7f7"android:orientation="vertical"tools:context=".ui.activity.message.MineFansActivity"><includeandroid:id="@+id/top_bar"layout="@layout/custom_toolbar" /><com.scwang.smartrefresh.layout.SmartRefreshLayoutandroid:id="@+id/refresh"android:layout_width="match_parent"android:layout_height="match_parent"app:srlEnableAutoLoadMore="true"app:srlEnableLoadMore="true"app:srlEnableRefresh="true"><cn.ipets.chongmingandroid.ui.widget.recyclerview.ClassicsHeaderandroid:layout_width="match_parent"android:layout_height="wrap_content" /><android.support.v4.widget.NestedScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"tools:ignore="UnusedAttribute"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="@color/white"android:orientation="vertical"><com.chongminglib.view.VpRecyclerViewandroid:id="@+id/recyclerview"android:layout_width="match_parent"android:layout_height="wrap_content"tools:targetApi="lollipop" /></LinearLayout><TextViewandroid:id="@+id/tips"android:layout_width="match_parent"android:layout_height="@dimen/dp60"android:layout_gravity="center_horizontal"android:background="@color/transparent"android:gravity="center"android:text="没有更多内容了"android:textColor="@color/colorFrame"android:textSize="@dimen/sp14"android:visibility="gone" /><includeandroid:id="@+id/ll_blank_view"layout="@layout/layout_blank"android:visibility="gone" /></LinearLayout></android.support.v4.widget.NestedScrollView><cn.ipets.chongmingandroid.ui.widget.recyclerview.ClassicsFooterandroid:layout_width="match_parent"android:layout_height="wrap_content" /></com.scwang.smartrefresh.layout.SmartRefreshLayout></LinearLayout>

页面代码

刷新和加载

refresh.setOnRefreshListener {mPageNo = 1loadData()}refresh.setOnLoadMoreListener {mPageNo++mPageSize += 12loadData()}

回调结果处理

refresh.finishRefresh()refresh.finishLoadMore()if (bean.code == "200" && bean.data.content != null) {tips.visibility = View.GONErecyclerview.visibility = View.VISIBLEll_blank_view.visibility = View.GONE//空白页if (mPageNo == 1) {adapter!!.setNewData(bean.data.content!!)if (bean.data.totalElements < 12) {if (bean.data.totalElements == 0) {tips.visibility = View.GONErecyclerview.visibility = View.GONEll_blank_view.visibility = View.VISIBLERecyclerVeiwBlankChangePicUtils.setBlankPic(mContext, "还没留下记录哦", tv_blank, iv_blank)}refresh.setEnableLoadMore(false)} else {refresh.setEnableLoadMore(true)tips.visibility = View.GONE}} else {adapter!!.addData(bean.data.content!!)if (bean.data.totalElements < mPageSize) {refresh.finishLoadMoreWithNoMoreData()tips.visibility = View.VISIBLE} else {refresh.setEnableLoadMore(true)}}}

2、这一种使用的是pageNo++,pageSize是个固定值

private fun loadMore() {mPageNo += 1XLog.e("mPageNo", mPageNo)pageRequest!!.PageNo = mPageNopresenter!!.youLove(pageRequest)}

refreshLayout.finishRefresh()refreshLayout.finishLoadMore()if (data == null) {love_title.visibility = View.GONErv_love.visibility = View.GONE} else {love_title.visibility = View.VISIBLErv_love.visibility = View.VISIBLEif (mPageNo == 1) {loveAdapter!!.setNewData(data)if (data.size < 10) {refreshLayout.setNoMoreData(true)} else {refreshLayout.setNoMoreData(false)}} else {loveAdapter!!.addData(data)if (data.size < 10) {refreshLayout.finishLoadMoreWithNoMoreData()} else {refreshLayout.setEnableLoadMore(true)}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。