2017-09-22 74 views

回答

1

我对这个问题的一些解决方案,希望它可以帮助下面的详细资料u太强势:

  1. 无效setLayoutFrozen(布尔冷冻); method details
    我强烈建议,如果我们只想居住滚动为这个方案简单和方便; if you want to know deeply

  2. 当我们使用LayoutManager(LinearManager或GridLayoutManager)时,我们可以使用这个。

`

LinearLayoutManager linearLayoutManager = new 

LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false){ 

     @Override 
     public boolean canScrollVertically() { 
      return false; 
     } 

     @Override 
     public boolean canScrollHorizontally() { 
      return super.canScrollHorizontally(); 
     } 
    };` 

GridLayoutManager是一样的。

  1. 从上面的第二项,我们可以扩展相应的LayoutManager。

`

public class MyGridLayoutManager extends GridLayoutManager { 

private boolean isScrollEnabled = true; 

public MyGridLayoutManager(Context context, int spanCount) { 
    super(context, spanCount); 
} 
public MyGridLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 
    super(context, attrs, defStyleAttr, defStyleRes); 
} 

public MyGridLayoutManager(Context context, int spanCount, int orientation, boolean reverseLayout) { 
    super(context, spanCount, orientation, reverseLayout); 
} 

public void setScrollEnabled(boolean flag) { 
    this.isScrollEnabled = flag; 
} 

@Override 
public boolean canScrollVertically() { 
    return isScrollEnabled && super.canScrollVertically(); 
} 
} 

` 4.我们可以处理RecyclerView的TouchEvent达到的效果。

从上面,我相信你可以让自己做到。祝你好运...

+0

顺便说一句,我完全同意这句话:**只要你假装自己处于危险境地,问问和回答自己的问题也是完全正确的! - 以问题的形式表达它。** – BertKing