先说一下NestedScrollView嵌套RecyclerView卡顿解决办法:
只需要设置recyclerView的一个属性就可以了,recyclerView.setNestedScrollingEnabled(false);
文档上对这个属性的解释是:Enable or disable nested scrolling for this view.
If this property is set to true the view will be permitted to initiate nested scrolling operations with a compatible parent view in the current hierarchy. If this view does not implement nested scrolling this will have no effect. Disabling nested scrolling while a nested scroll is in progress has the effect of stopping the nested scroll.
意思就是说:启用或禁用此视图的嵌套滚动。
如果将此属性设置为true,则允许视图在当前层次结构中初始化具有兼容父视图的嵌套滚动操作。如果该视图没有实现嵌套滚动,则不会产生任何效果。在进行嵌套滚动时禁用嵌套滚动,会停止嵌套滚动。
接下来说一下NestedScrollView嵌套RecyclerView,打开界面RecyclerView不再顶部的解决办法:
在NestedScrollView的第一个子布局中加入
android:focusable="true"
android:focusableInTouchMode="true"
原因就是RecyclerView会抢先获取焦点,因此打开界面会移动到RecyclerView上,解决办法是手动把焦点给NestedScrollView的第一个子布局