Webview在RecyclerView中开启硬件加速闪屏问题解决

博客转移到:http://www.wangchengmeng.club/

在项目中遇到一个问题:把Webview作为header加在Recyclerview中,开启硬件加速后,锤子手机闪屏严重,其他手机有闪屏,不算严重。但是关闭硬件加速网页会很卡,一直对于硬件加速闪屏问题不知怎么解决,尝试直接关闭Webview的硬件加速,但出现白屏现象,尝试了一下如果webview不加在Recyclerview中,不会出现闪屏,现就对于加在Recyclerview闪屏情况有个妙招解决,经过测试 效果还不错。

解决办法:
监听RecyclerView的滑动状态,在滑动的时候开启RecyclerVIew的硬件加速,此刻就不会闪屏,也看不到网页的闪屏现象,再停下来的时候(IDEA),再关闭RecyclerView的硬件加速,因为没有滑动 所以不会出现卡的现象,而且关闭了硬件加速,不会出现闪屏现象。

虽然不是一个很好的解决办法,但是终究解决了这个问题,目前可以满足需求。

代码:

    recyclerView.addOnScrollListener(object: RecyclerView.OnScrollListener() {
        override fun onScrollStateChanged(recyclerView: RecyclerView?, newState: Int) {
            super.onScrollStateChanged(recyclerView, newState)
            if (newState == RecyclerView.SCROLL_STATE_IDLE) {
                if (recyclerView?.layerType != View.LAYER_TYPE_SOFTWARE) {
                    recyclerView?.setLayerType(View.LAYER_TYPE_SOFTWARE, null)

                }
            } else {
                if (recyclerView?.layerType != View.LAYER_TYPE_HARDWARE) {
                    recyclerView?.setLayerType(View.LAYER_TYPE_HARDWARE, null)
                }
            }
        }
    })
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值