RecyclerView 嵌套RecyclerView 导致自动滚动

问题描述

目前项目中发现某些页面在切换tab,或者下拉刷新的时候, 会发现自动滚动的情况, 经排查发现是RecyclerView 嵌套RecyclerView, 子RecyclerView获取到焦点, 导致列表会置顶或者回滚到最后一次离开页面的位置等情况.

解决方案

子 recyclerView 抢了焦点导致子 RecyclerView自动滚动,所以我在子recyclerView设置不需要焦点

  1. RecyclerView 嵌套RecyclerView
mRecyclerView.setFocusableInTouchMode(false); //设置不需要焦点
mRecyclerView.requestFocus(); //设置焦点不需要

ScrollView当中嵌套RecyclerView 也在某些场景下也会出现, 可以尝试下面这种解决方式进行排除

  1. ScrollView当中嵌套RecyclerView
 让处于ScrollView或者RecyclerView 顶端的某个控件获得焦点即可
 比如顶部的一个textview
 tv_goodsName.setFocusableInTouchMode(true);  
 tv_goodsName.requestFocus(); 

至此, 项目中的多个页面出现自动滚动的问题得到解决, 希望这个方法能帮忙到大家, 也请各位大神有更好的解决方案给我留言, 不胜感激!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容