gui*_*gui 8 android onscrolllistener android-recyclerview android-nestedscrollview
大家好,我正在尝试处理onScrolled我recyclerView的NestedScrollView.
到目前为止,我已经发现setOnScrollChangeListener,但是这个方法是 API 23,我的目标是 API 21,有什么想法可以在 API 21 中处理这个问题吗?
Nha*_*tVM 18
我认为您正在将 setOnChangeScrollListener 与 View.OnScrollChangeListener 一起使用。请像这样使用 NestedScrollView.OnScrollChangeListener :
scvProduct.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
public void onScrollChange(NestedScrollView nestedScrollView,int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
Log.e("ProductFragment","position button " + topPositionButton + " scrollY " + scrollY);
if(scrollY > oldScrollY){
Log.e("ProductFragment","down");
}
else{
Log.e("ProductFragment","up");
}
}
});
Run Code Online (Sandbox Code Playgroud)
一段时间后,我有了一个想法,我不再听滚动RecyclerView并开始听NestedScrollView onScroll事件。
我设法recyclerView使用此代码片段制作我的 loadOnDemand
nsv_posts_timeline.setOnScrollChangeListener(
NestedScrollView.OnScrollChangeListener {
_, scrollX, scrollY, _, oldScrollY ->
if(scrollY > oldScrollY){
val totalItens = timelineAdapter.itemCount
val currentView = rv_timeline.findChildViewUnder(scrollX.toFloat(), scrollY.toFloat())
val childPosition = rv_timeline.getChildAdapterPosition(currentView)
if((totalItens/2) - (stepSize/2) <= childPosition && !isLoading){
isLoading = true
//skip , take
timelinePresenter.loadMore(totalItens, 5)
}
}
})
Run Code Online (Sandbox Code Playgroud)
isLoading是一个类属性,当我的回调从服务器返回时,我将其更改为 false
| 归档时间: |
|
| 查看次数: |
7766 次 |
| 最近记录: |