android ConstraintLayout卡顿问题

本文揭示了ConstraintLayout在包含大量孙控件时性能下降的问题,尤其是在列表滚动场景下。当直播页面嵌套过多层级的ConstraintLayout时,onMeasure耗时显著,导致卡顿。通过实践和调整,得出结论:单一层级布局最高效,多级嵌套需谨慎。
摘要由CSDN通过智能技术生成

性能之神属于极端存在,大多数博客和谷歌官方都介绍了ConstraintLayout好处,但是通过项目实践得到以下结论:

       1.如果ConstraintLayout只包含一级子控件,无任何孙控件,性能最好,也符合官方告知的所有子控件都可通过约束条件进行布局;

        2.如果ConstraintLayout的子控件中包含众多孙控件,那性能非常差,onMesure测量非常耗时,便是卡顿的关键所在。

案例:我们的项目最近把直播页面和小视频页面要做成一个列表滚动,类似于抖音,刷视频的时候能刷到直播;但是我们的直播页面并没有减少任何控件,也就是说可以在列表页进行全量操作;已知每个小视频根布局使用的ConstraintLayout,滑动列表也放在了ConstraintLayout中,所以我们把直播抽出的Fragment放入到了ConstraintLayout中,公测后部分手机+Android11的用户反馈我们列表页直播特别卡,尤其是弹出键盘的时候;在上下滑动控件的onMeasure中打印耗时,结果显示当前Constraintlayout每次onMesure的时间甚至超过了500毫秒;由于认知不深刻,一度认为是直播过渡嵌套控件的问题;直到凌晨同事灵机一动,说是不是Constraintlayout中嵌套多级子控件就会卡顿呀;一语惊醒梦中人。改改看,一通快速操作,完美解决问题;遂得出以上1、2结论;

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值