RecyclerView禁用滚动不起作用

时间:2018-02-15 04:45:35

标签: android android-recyclerview horizontal-scrolling

我有一个水平滚动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);
}

提前致谢。如果有人回答这个问题,我会非常乐于助人。

1 个答案:

答案 0 :(得分:2)

扩展LinearLaoyutManager并覆盖canScrollHorizontally方法。 展开/折叠幻灯片面板时,请调用layoutmanager 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();
   } 
}