天天看点

Android Recyclerview焦点变化问题导致下拉刷新视觉卡顿

如题,最近做项目时偶然发现了一个Recyclerview嵌套Recycleview的问题。

业务模块是订单列表,涉及到一个订单包含多个子订单的情况,所以考虑使用嵌套来展示页面,这一切都是正常的,没有任何问题。然而,随着业务的展开需要查看详情单个条目的详情,于是乎startActivity 呗。然后,从下级页面返回回到上级页面后,出现问题了,下拉刷新卡卡的。具体如下图:

Android Recyclerview焦点变化问题导致下拉刷新视觉卡顿

开始以为是滑动冲突的问题,因为这样一个背景:recycleview互相嵌套后出现卡顿了 ,让人很容易去第一时间想到是滑动冲突导致的。可是在完成这个部分时候我已经把内层的Recycleview的滑动给关闭了,不然在页面整体滑动的时候应该也会出现这样的问题,所以这个原因排除。那么会是神马造成的呢?

Android Recyclerview焦点变化问题导致下拉刷新视觉卡顿

多次反复的玩弄爪机发现了一个疑点:第一次进入页面的时候,整个页面是不会出现这个问题的,问题是在页面跳转返回之后出现的,这个就非常奇怪了。于是我又查看其它模块的列表:单一没有嵌套的列表没有出现任何这样的问题。所以还是需要回归嵌套的部分。因为下拉刷新的时候,手指是滑动了一定距离后,刷新头部才出现,也就是刷新头部在响应手指滑动的时候出现问题了,会不会是焦点的问题呢?在和同事讨论过后感觉有可能是这个原因,于是试了试,不让内部的recycleview的自动获取焦点:

recycleview.isFocusable = false
recycleview.isFocusableInTouchMode = false
           

重新运行,哇塞~棒棒哒~

Android Recyclerview焦点变化问题导致下拉刷新视觉卡顿
Android Recyclerview焦点变化问题导致下拉刷新视觉卡顿