Day 31:RecyclerView Loads More

本来先看了 paging 的相关资料,发现顺序有点不太对,应该先处理 RecyclerView 下滑时 UI 的细节,後续才可以去呼叫 API。

最直觉的处理方式就是在 RecyclerView 在下滑时去计算是不是需要读更多的资料,不过在实做上的时候觉得一直滑动就在计算的频率太高,所以先依 scrollview 是静止的时候再去检查。

recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
            override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
                if (newState == RecyclerView.SCROLL_STATE_IDLE) {
                    shouldLoadMore()
                }
            }
        })

private fun shouldLoadMore() {
    layoutManager?.let {
        if (it.findFirstCompletelyVisibleItemPosition() == RecyclerView.NO_POSITION) {
            return
        }
        val lastPosition = it.findLastCompletelyVisibleItemPosition()
				// 检查目前显示的笔数跟总个数的差异
        val result = abs(it.itemCount - lastPosition)
				// 检查是不是最後一笔了
        isLastPage = (it.itemCount - 1) == lastPosition
        if (!isLastPage && abs(result) <= 8) {
            Log.i(MainActivity.TAG, "loadmore")
        }
    }
}

<<:  Day28 - GitLab CI 如何让工作流程流水线跑快一点?之二 逐一调整

>>:  Day 28 Explore monitoring and reporting

【Go】多维 slice / array

虽然之前有看过 slice / array 比较的文章, 但在写 leetcode 时还是碰到点小麻...

Day7:K-means分析

  K-means的中文有人称作集群分析,但是主要都还是讲英文,比较容易懂。   这分析方法跟KNN...

D11/ 要怎麽显示动态资料的画面 - State

今天大概会聊到的范围 State Gesture Modifier 在之前,都只是在介绍比较静态的...

Day5. 及早失败,从中学习- 低精度原型

试想当你有了一个绝佳的 idea,如何验证这个概念可不可行、够不够好呢?设计师常用的方法,是制做一个...

就决定是你了 - 阵列系列III

来到阵列系列的最後一天,今天要一次认识会改变原本阵列的Array Method,再往下看之前,先来个...