本文共 915 字,大约阅读时间需要 3 分钟。
最近在6.0以后系统上连续遭遇了几次Scrollview嵌套Recyclerview问题的重击,于是乎决定把这部血泪史记录下来,供大家参考。
在6.0以前我们通常也会碰到scrollview嵌套Recyclerview的嵌套问题,这时,我们采用的方法是在Recyclerview的外层添加一个RelativeLayout或者LinearLayout布局并给父布局添加属性:android:descendantFocusability=”blocksDescendants”
代码如下:以上方法在6.0以下是可以解决嵌套造成的焦点冲突的,但是到了6.0以后就无效了。好在Google为我们提供了一个解决方法:用NestedScrollView替代ScrollView。但是,同时需要个体NestedScrollView添加属性:android:fillViewport=”true”
这样就可以解决6.0以上的ScrollView嵌套Recyclerview导致Recyclerview显示不全的问题了。
但是同时会导致滑动卡顿现象,额,怎么解决呢?方法是给Recyclerview添加属性:android:nestedScrollingEnabled=”false”
或者在java代码中设置:LinearLayoutManager layoutManager = new LinearLayoutManager(this); layoutManager.setSmoothScrollbarEnabled(true); layoutManager.setAutoMeasureEnabled(true); recyclerView.setLayoutManager(layoutManager); recyclerView.setHasFixedSize(true); recyclerView.setNestedScrollingEnabled(false);
这个问题的解决方法差不多就到这里了。以后有其他问题继续补充。
转载地址:http://ugcqf.baihongyu.com/