如何在不使用findFirstCompletelyVisibleItemPosition
的情况下检查回收商视图是否滚动到顶部(列表的开头)?
说明:我无法使用此方法,因为RecyclerView
上的项很大,有时永远不会“完全可见”,因此该方法将返回-1(RecyclerView.NO_POSITION
)
我需要知道这只是在回收者视图到达顶部时触发动作。
val manager = timelineRecyclerView?.layoutManager as StaggeredGridLayoutManager
val visibles = manager.findFirstCompletelyVisibleItemPositions(null)
解决:包含一些代码来帮助
timelineRecyclerView.addOnScrollListener(object:RecyclerView.OnScrollListener() {
override fun onScrollStateChanged(recyclerView:RecyclerView,
newState:Int) {
super.onScrollStateChanged(recyclerView, newState)
}
override fun onScrolled(recyclerView:RecyclerView, dx:Int, dy:Int) {
super.onScrolled(recyclerView, dx, dy)
currentTimelinePosition += dy
Log.wtf("position", currentTimelinePosition.toString())
//if the timeline position is on its start, allow swipe and refresh
swipeLayout.isEnabled = currentTimelinePosition == 0
}
})
答案 0 :(得分:3)
您可以创建class App extends Component {
render() {
return (
<div>
<BrowserRouter>
<div>
<MenuBar /> //SIMPLIFIED FOR POST
<SearchBar path="/search" exact/>
</div>
</BrowserRouter>
</div>
);
}
}
,并跟踪滚动的数量。
例如,您需要做的就是保留一个变量,并根据垂直滚动量使用onScroll更新它。
RecyclerView.OnScrollListener