我在片段中有一个RecyclerView。我需要收到有关滚动更改的通知,因此我添加了对ScrollChange
事件的回调(对应于传统Android API中的SetOnScrollChangeListener
):
private void RecyclerViewScrollChange(object sender, View.ScrollChangeEventArgs e)
{
int deltaY = e.ScrollY - e.OldScrollY;
}
问题是deltaY始终为零,因为ScrollY和OldScrollY始终为零。我在回收站视图的布局管理器中使用垂直线性布局,因此应该更新垂直维度。什么可能导致这个问题?
答案 0 :(得分:1)
View.SetOnScrollChangeListener()
,您可以在文档中看到:View.SetOnScrollChangeListener()
如果您的应用应支持API级别23之前的版本,则解决方法是将ScrollChangeListener添加到RecyclerView
的`ViewTreeObserver'使用AddOnScrollChangedListener()如下:
_recyclerView.ViewTreeObserver.AddOnScrollChangedListener(param);
或向ViewTreeObserver
ScrollChanged事件添加回调
答案 1 :(得分:0)
滚动到Y位置正在使用
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
Log.v("onScrolled", "dx:" + dx + " dy:" + dy);
}
});