在滚动方面,我需要Recyclerview
像ListView
一样工作,以便在滚动列表时可以在屏幕上重新放置其他视图。使用ListView
时,我可以设置一个OnScrollListener
,只要滚动位置更新,它就会调用onScroll
,当我需要根据列表的滚动位置重新定位其他视图时,此方法可以很好地工作
对于我来说,用Recyclerview
在LinearLayoutManager
中获得这些更新已被证明是困难的。 OnScrollListener
的{{1}}不会在滚动位置更改时更新,而仅在当前行为更改且滚动完成时才更新。 (RecyclerView
和onScrolLStateChanged
)。
到目前为止,我唯一能找到的解决方案是将onScrolled
包裹在RecyclerView
内,并在该NestedScrollView
上设置OnScrollListener
。但是,这会中断回收,并且不是可行的选择,因为它会导致性能很差。
对于这个问题,我是否有其他解决方案?或者,如果我现在想实现这一目标,我是否只是坚持使用NestedScrollView
?
编辑:我知道ListView
的{{1}},但仅适用于API 23或更高版本。我需要一个向下兼容API 15的版本。
答案 0 :(得分:1)
使用
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
Log.i("testscroll", "onScrolled: ");
super.onScrolled(recyclerView, dx, dy);
}
});
应该在每次滚动时通知。