当前位置: 首页 > news >正文

布局性能优化

布局使用不当回导致卡顿、掉帧、响应慢等问题

一、布局流程

1、应用侧会根据前端UI描述创建后端的页面节点树,其中包含了处理UI组件属性更新、布局测算、事件处理等逻辑

2、页面节点树创建完成后,UI线程会对每个元素进行测算(Measure)和布局(Layout)来确定具体的位置和大小,其中Measure阶段负责确定组件对象的测量宽高;也就是该组件元素需要占用屏幕的大小,然后会在Layout阶段确定组件的最终宽高和四个顶点的位置。

3、确认了具体元素的节点信息位置后,会根据页面节点树生成当前的界面描述数据结构  ---  渲染树,渲染树由RenderNode渲染节点组成,描述了具体的元素在屏幕上的布局信息,包含大小、位置以及一些其他属性。

4、最后渲染服务的渲染线程会根据渲染树的信息执行相应的绘制工作。

在布局中若视图嵌套层级深,节点数过多,会导致Measure和Layout的过程中,通过遍历测量组件大小和边界的时间过长,造成额外的计算。所以可以从减少节点树或减少测算布局耗时方面来优化布局性能

二、优化布局结构的方法

1、精简节点数

移除冗余的节点

使用扁平化布局减少节点数(RelativeContainer、Grid布局等)

2、合理控制元素的显示与隐藏

主要有两种控制方式,if条件渲染和visibility属性。

使用visibility属性控制场景:对性能要求较高并且会频繁切换元素的显示与隐藏的情况下

使用if条件渲染场景:如果组件的创建非常消耗资源,且不会立即使用,也并非频繁切换交互的情况下,只在特定条件下才


http://www.mrgr.cn/news/43804.html

相关文章:

  • 问:TCP长连接vs短连接有哪些差异?
  • 《数据结构》--队列【各种实现,算法推荐】
  • Vue (快速上手)
  • Qt QPushButton clicked信号浅析
  • SVM及其实践1 --- 概念、理论以及二分类实践
  • C++面试速通宝典——14
  • 在线教育系统开发:SpringBoot框架的实战应用
  • Polars 的 Series
  • 基于SpringBoot+Vue+MySQL的在线学习交流平台
  • Oracle 数据库安装和配置详解
  • Redis终极入门指南:万字解析帮你从零基础到掌握命令与五大数据结构
  • 重塑数字时代的生存法则:IT部门的转型与重生
  • CUDA、Pytorch、Pycharm的安装与配置
  • 【Canvas与艺术】玻璃光小红灯
  • 【LeetCode: 134. 加油站 | 贪心算法】
  • codetop标签动态规划大全C++讲解(三)!!动态规划刷穿地心!!学吐了家人们o(╥﹏╥)o
  • 智慧学生宿舍管理平台|学生宿舍管理平台系统|基于Springboot+VUE的智慧学生宿舍管理平台系统设计与实现(源码+数据库+文档)
  • 第一批用大模型的程序员,已经碾压同事了...
  • 【AI知识点】偏差-方差权衡(Bias-Variance Tradeoff)
  • 九大排序之插入排序