Recyclerview分页效果很好,但是在SwipeRefreshLayout
做的地方,分页失败了,无法按预期工作。
Recyclerview的OnScrollListener
rv_spesialisasi.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
val linearLayoutManager = recyclerView
?.layoutManager as LinearLayoutManager?
if (!loading && linearLayoutManager!!.itemCount <= linearLayoutManager.findLastVisibleItemPosition() + 2) {
loading = true
refresing(true)
viewModel.loadIconSpesialisasi(currentpage)
}
}
})
这是为了刷新
private fun setRefreshing() {
sr_spesialisasi.setOnRefreshListener {
currentpage = 0
loading = false
listDataGlobal.clear()
adapter.clearData()
viewModel.loadIconSpesialisasi(currentpage)
}
}
我在Java中尝试过,效果很好,但在Kotlin中不起作用。请帮我解决这个问题。
答案 0 :(得分:0)
我可以知道您在refresing(true)方法下执行的操作吗。
如果您正在使用或显示滑动布局的加载器作为加载指示器,并且为此,如果您调用swipeLayout.isRefreshing = true
,则将显示加载器,但还会触发onRefreshListener(),在这种情况下,它将调用
sr_spesialisasi.setOnRefreshListener {
currentpage = 0
loading = false
listDataGlobal.clear()
adapter.clearData()
viewModel.loadIconSpesialisasi(currentpage)
}
此方法,它再次重新加载到第一页。
要使其正常工作,请使用这样的布尔值。isRealRefreshIsOn = false
当您想要刷新时,请使其变为真。
sr_spesialisasi.setOnRefreshListener {
if(isRealRefreshIsOn){
currentpage = 0
loading = false
listDataGlobal.clear()
adapter.clearData()
viewModel.loadIconSpesialisasi(currentpage)}
}