2019-04-17 Recyclerview在scroll
项目中会遇到scrollview嵌套Recyclerview的布局,所以需要禁止Recyclerview的滚动,已达到布局效果。
禁止滑动解决方法
自定义LayoutManager以GridLayoutManager为例,LinearLayoutManager同理。
publicclassMyGridLayoutManagerextendsGridLayoutManager{privatebooleanisScrollEnabled =true;publicMyGridLayoutManager(Context context,intspanCount){super(context, spanCount); }publicMyGridLayoutManager(Context context, AttributeSet attrs,intdefStyleAttr,intdefStyleRes){super(context, attrs, defStyleAttr, defStyleRes); }publicMyGridLayoutManager(Context context,intspanCount,intorientation,booleanreverseLayout){super(context, spanCount, orientation, reverseLayout); }publicvoidsetScrollEnabled(booleanflag){this.isScrollEnabled = flag; }@OverridepublicbooleancanScrollVertically(){returnisScrollEnabled &&super.canScrollVertically(); }}
设置Recycleview的LayoutManager
MyGridLayoutManager gridLayoutManager =newMyGridLayoutManager(getContext(),2);//两列gridLayoutManager.setScrollEnabled(false); recycleView_single.setLayoutManager(gridLayoutManager);
滑动解决后发现recycleview在安卓6.0显示不全,高度权重再怎么设置都只显示一部分。
解决方法,在使用到recycleview的布局外用一个RelativeLayout,关键属性android:descendantFocusability="blocksDescendants"
作者:暗尘随码去
链接:https://www.jianshu.com/p/49bf92baa98b
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。