RecyclerView 禁用滚动不起作用
RecyclerView disable scroll doesnot work
我有水平滚动条recyclerview
。 recyclerviews
个子项目有向上滑动面板。因此,当面板展开时,我想阻止 recyclerview
滚动。
在向上滑动面板展开之前,用户无法滚动到下一个项目。折叠向上滑动面板后,应启用 recyclerview
滚动。
这是recyclerview
初始化代码
mAdapter = new FootballFeedDetailAdapter(FootballFeedDetailActivity.this);
linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(mAdapter);
SnapHelper snapHelper = new PagerSnapHelper();
snapHelper.attachToRecyclerView(footballFeedRecyclerView);
我尝试使用 recyclerView.setNestedScrollingEnabled(false);
但它不起作用
如果上滑面板展开,我会从我的适配器中收集以下方法
public void setUpRecyclerViewScroll(boolean status) {
footballFeedRecyclerView.setNestedScrollingEnabled(status);
}
提前致谢。如果有人回答这个问题,我会很有帮助。
扩展 LinearLaoyutManager 并覆盖 canScrollHorizontally
方法。
当您的滑动面板 expanded/collapsed 调用布局管理器 setScrollingEnabled(false/true)
private static class HScrollManager extends LinearLayoutManager {
private boolean scrollingEnabled = true;
public void setScrollingEnabled(boolean enabled) {
scrollingEnabled = enabled;
}
@Override
public boolean canScrollHorizontally() {
return scrollingEnabled && super.canScrollVertically();
}
}
我有水平滚动条recyclerview
。 recyclerviews
个子项目有向上滑动面板。因此,当面板展开时,我想阻止 recyclerview
滚动。
在向上滑动面板展开之前,用户无法滚动到下一个项目。折叠向上滑动面板后,应启用 recyclerview
滚动。
这是recyclerview
初始化代码
mAdapter = new FootballFeedDetailAdapter(FootballFeedDetailActivity.this);
linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(mAdapter);
SnapHelper snapHelper = new PagerSnapHelper();
snapHelper.attachToRecyclerView(footballFeedRecyclerView);
我尝试使用 recyclerView.setNestedScrollingEnabled(false);
但它不起作用
如果上滑面板展开,我会从我的适配器中收集以下方法
public void setUpRecyclerViewScroll(boolean status) {
footballFeedRecyclerView.setNestedScrollingEnabled(status);
}
提前致谢。如果有人回答这个问题,我会很有帮助。
扩展 LinearLaoyutManager 并覆盖 canScrollHorizontally
方法。
当您的滑动面板 expanded/collapsed 调用布局管理器 setScrollingEnabled(false/true)
private static class HScrollManager extends LinearLayoutManager {
private boolean scrollingEnabled = true;
public void setScrollingEnabled(boolean enabled) {
scrollingEnabled = enabled;
}
@Override
public boolean canScrollHorizontally() {
return scrollingEnabled && super.canScrollVertically();
}
}