android - Android OnScrollListener 无法正常工作
问题描述
我正在尝试向我的 Android 应用程序添加无限滚动,但我认为 onScrolled 方法无法正常工作。
如果我调用 addOnScrollListener,它将只调用一次。但我认为每次滚动 RecyclerView 时都应该调用它。
linearLayoutManager = LinearLayoutManager(this)
recyclerViewNeuheiten.layoutManager = linearLayoutManager//LinearLayoutManager(this)
recyclerViewHistory.layoutManager = LinearLayoutManager(this)
recyclerViewBestSeller.layoutManager = LinearLayoutManager(this)
recyclerViewFavorites.layoutManager = LinearLayoutManager(this)
recyclerViewNeuheiten.adapter = neuheitenAdapter
recyclerViewHistory.adapter = historyAdapter
recyclerViewBestSeller.adapter = bestsellerAdapter
recyclerViewFavorites.adapter = favoriteAdapter
//setRecyclerViewScrollListener()
setRecyclerViewScrollListener()
private fun setRecyclerViewScrollListener() {
Log.v("scroll", "set listener")
recyclerViewNeuheiten.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
super.onScrollStateChanged(recyclerView, newState)
Log.v("scroll", "onScrollStateChanged newState $newState")
}
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
Log.v("scroll", "onScrolled !!!!!")
super.onScrolled(recyclerView, dx, dy)
val currentItem = recyclerView.layoutManager!!.childCount
val totalItemCount = recyclerView.layoutManager!!.itemCount
Log.v("scroll", "currentItem $currentItem")
Log.v("scroll", "totalItemCount $totalItemCount")
Log.v("scroll", "lastVisibleItemPosition $lastVisibleItemPosition")
Log.v("scroll", "scroll out items ${linearLayoutManager.findFirstVisibleItemPosition()}")
}
})
}
解决方案
我发现了问题。我在 NestedScrollView 中使用我的 RecyclerView。onScrolled 方法在没有 ScrollView 的情况下触发每个滚动。
推荐阅读
- java - Spring Boot 仅在唯一时将角色添加到 DB
- python - 如何单击 selenium python 中的图标
- javascript - li 打开时允许在手风琴上移动滚动
- python-3.x - 使用带有子字符串/类似字符串的枚举函数
- java - 将十进制转换为二进制
- c# - 为什么返回 Task.CompletedTask 无法在异步方法中编译?
- can-bus - CANOpen 协议开销
- python - 我想为 transip api 生成一个 jwt
- excel - 尝试将来自 API 的响应放入工作表时,过程调用或参数无效(错误 5)
- javascript - 使用 JavaScript 时转换属性不起作用