在近期项目中出现了一个弹出dialog还能滑动RecyclerView的现象。为了消除这类现象所以要在弹出dialog后停止RecyclerView的滑动。
解决步骤如下:
-
自定义一个CustomLinearLayoutManager,重写canScrollHorizontally()或者canScrollVertically();
public class CustomLinearLayoutManager extends LinearLayoutManager { public static final String TAG="CustomLinearLayoutManager"; private boolean isScrollEnabled=true; public CustomLinearLayoutManager(Context context) { super( context ); } public CustomLinearLayoutManager(Context context, @RecyclerView.Orientation int orientation, boolean reverseLayout) { super( context, orientation, reverseLayout); } public void setScrollEnabled(boolean flag){ isScrollEnabled=flag; } @Override public boolean canScrollHorizontally() { return isScrollEnabled && super.canScrollHorizontally(); } } -
RecyclerView使用自定义的CustomLinearLayoutManager;
linearLayoutManager = new CustomLinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); recyclerViewRobots.setLayoutManager(linearLayoutManager); -
调用CustomLinearLayoutManager.setScrollEnabled();
linearLayoutManager.setScrollEnabled( false );//停止滑动 linearLayoutManager.setScrollEnabled( true);//开启滑动
为解决弹出dialog时RecyclerView仍能滑动的问题,本文介绍了一种自定义CustomLinearLayoutManager的方法,通过重写canScrollHorizontally()或canScrollVertically()函数,实现在dialog弹出时控制RecyclerView的滑动状态。

被折叠的 条评论
为什么被折叠?



