RecyclerVIew莫名其妙滚动
今天在开发过程中发现,有的手机,RecyclerView在点击跳走到另外页面再返回的时候,会出现莫名其妙的的自动滚动。
现象大概如下:
- 第一次进入A页面,A中有RecyclerView
- 点击其中元素,跳转到B页面,彻底遮盖A页面
- 随后返回A页面,A中的RecyclerView莫名其妙滑动了一段距离。
该问题并非必现的,而且只有第一次进入的时候复现。当时也是让我百思不得其解。
后来在网上找了找,发现了这样一个方案
/**
* 禁止RecyclerView抢焦点导致的OverScroll而产生的莫名其妙滚动
* <p>
* author : MuXi
*
* @date : 2020/3/19 11:09
* @since
*/
private void disableRecyclerViewFocusOverScroll() {
getRecyclerViewParent().setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);//让RecyclerView的父View禁止子View获取焦点
getRecyclerView().setOverScrollMode(View.OVER_SCROLL_NEVER);//关闭RecyclerView的OverScroll模式
}
- 上述代码中的两种方案都能够生效。原因就是RecyclerView在抢占焦点导致
- 按理说我们常用的App研发中,基本不太需要考虑Focus的情况,所以比较建议各位使用第一种方案
- 禁止RecyclerView抢占焦点.