RecyclerView 禁用滚动不起作用

RecyclerView disable scroll doesnot work

我有水平滚动条recyclerviewrecyclerviews 个子项目有向上滑动面板。因此,当面板展开时,我想阻止 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();
   } 
}