解决方法:假设被嵌套的RecyclerView实例对象为item,代码中加上:item.setFocusableInTouchMode(false);//设置不需要焦点
补充:看别人的解决方法还多加了一行代码:mTestItemSuperRecyclerView.requestFocus();实验证明有没有都一样。查看源码这行代码的意思是让控件获得焦点,所以这行代码是完全不需要的。
问题描述:本来一切都是没问题的,但是有一天突然发现,只要当跳转到了一个特定的页面A时,返回双层嵌套recyclerView的界面后,界面就会自动滑动,但是只要不进入界面A(跳转其他页面不会有影响),双层嵌套的页面就不会出现问题。
后续:虽然上面的办法解决了我的问题,但为什么会这样却搞不明白。为此我做了一定的探究。我发现,只要进入过页面A之后,返回双层嵌套的界面后,其中item会有焦点的变化,变化历程为:获得焦点->失去焦点。而不进入页面A的话,焦点一直没有变化。仔细看了页面A的代码和布局之后发现,可能是页面A使用了滚动控件NestedScrollView。但具体原因暂时还未发现,希望以后技术提升之后能找到原因。