簡體   English   中英

Android - 有沒有辦法使用 recyclerview.addOnScrollListener 作為 function

[英]Android - Is there a way to use recyclerview.addOnScrollListener as a function

此代碼用於帶有列表的頁面。 由於此代碼在所有頁面上都是多余的,因此我想將其捆綁在 function 中使用。 有辦法嗎??

recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener(){
            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
                super.onScrolled(recyclerView, dx, dy)
                val lastVisibleItemPosition =
                    (recyclerView.layoutManager as LinearLayoutManager).findLastCompletelyVisibleItemPosition()
                val itemTotalCount = recyclerView.adapter!!.itemCount-1

                if (lastVisibleItemPosition == itemTotalCount && !recyclerView.canScrollVertically(1) && !lastPageCheck) {
                    // something 
                }
            }
        })

您可以使用Kotlin 擴展功能 不過,您可能不得不考慮處理全局變量( lastPageCheck )。

像這樣的東西

fun RecyclerView.onScrollChangeCustom(doSomething: () -> Unit) {
addOnScrollListener(object : RecyclerView.OnScrollListener() {
    override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
        super.onScrolled(recyclerView, dx, dy)
        val lastVisibleItemPosition =
            (recyclerView.layoutManager as LinearLayoutManager).findLastCompletelyVisibleItemPosition()
        val itemTotalCount = (recyclerView.adapter?.itemCount ?: 0) - 1

        if (lastVisibleItemPosition == itemTotalCount && !recyclerView.canScrollVertically(1) && !lastPageCheck) {
            doSomething()
        }
    }
})

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM