flutter 滑动优化

news2025/2/24 12:29:44

1:

如果ListView是用的children[]方式,快速滑动会卡顿
建议使用SingleChildScrollView

2:

  • 列表中有视频卡片
    • 停止滑动时,若列表中有视频播放,由于画面一直在变化,检测工具无法判断是滑动停止;同时,由于视频 fps 值为 30 左右,会导致流畅度数据偏低
    • 如何避免:检测过程中,需保证列表滑动不停止

3:

  1. 对于长列表,避免使用 ListView() 构造函数,推荐使用 ListView.builder 构造函数

4:

主 isolate 优化 5. 减少或延迟 widget build 中非视图逻辑,如曝光埋点延迟到滑动停止聚合触发 5. 列表 Item 高度可知的情况下,推荐设置 itemExtent,减少滑动中频繁计算列表高度 5. 使用 const 修饰无需变更的 widget 或普通对象 5. 使用 AnimatedBuilder 时,避免在不依赖于动画的 widget 的构造方法中构建 widget 树。动画的每次变动都会重建这个 widget 树。而应该构建子树的那一部分,并将其作为 child 传递给 AnimatedBuilder 5. 避免在动画中剪裁。如果可能,请在动画开始之前预先剪切图像

5:

Render 线程优化 10. 对于频繁更新的控件(如动画),使用 RepaintBoundary 隔离它,创建单独 layer 减少重绘区域 10. 使用图片替换半透明效果 10. 减少 saveLayer(ShaderMask、ColorFilter、Text Overflow)、clipPath的使用,提升 render 线程性能 10. 避免使用 Opacity widget,尤其是在动画中避免使用。请用 AnimatedOpacity 或 FadeInImage 进行代替 10. 避免使用带换行符的长文本

6:三方组件:

DXTextWidget

7:

  1. 优化每个任务,挤压 CPU 运算量,保证一帧时间(16.6 ms)完成任务 flutter 中的主流优化思路,前面的优化手段都是这个思路

8: 3.7版本的新功能

RootIsolateToken rootIsolateToken = RootIsolateToken.instance!;

Isolate.spawn((){

//方法

}, rootIsolateToken);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/507009.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题202快乐数) 2023.5.9

目录 前言算法题(LeetCode刷题202快乐数)—(保姆级别讲解)分析题目算法思想(使用unordered_set实现哈希表) 结束语 前言 本文章一部分内容参考于《代码随想录》----如有侵权请联系作者删除即可&#xff0c…

GPIO实验【嵌入式系统】

GPIO实验【嵌入式系统】 前言推荐样例工程运行安装驱动安装驱动的问题工程配置工程运行 GPIO基础实验最后 前言 2023-5-9 14:41:36 以下内容源自《【嵌入式系统】》 仅供学习交流使用 推荐 周立功TinyM0开发板,通过CK100仿真器下载程序。win10系统! …

本地部署 langchain-ChatGLM

本地部署 langchain-ChatGLM 1. 什么是 langchain-ChatGLM2. 什么是 langchain3. Github 地址4. 安装 Miniconda35. 创建虚拟环境6. 部署 langchain-ChatGLM7. 启动 langchain-ChatGLM8. 访问 langchain-ChatGLM9. API部署10. 命令行部署11. 其他,LangChain Documen…

深度学习—神经网络基础原理及循环神经网络

前向传播(Forward) 为什么要有激活函数 这里用两层来代表多层的神经网络举例:第一层的输出是第二层的输入,其中MM的W*X矩阵乘法,ADD是向量加法即加上偏置,如果每一层都只有线性变换,那么最终无…

RabbitMQ入门(详细)

RabbitMQ入门(详细) 初始消息队列消息队列初识为什么要使用消息队列?消息队列的特性 RabbitMQ介绍特点核心概念 Linux(CentOs7) 下安装:安装前配置:Erlang下载安装RabbitMQ下载安装linux下安装r…

泰安柒柒:国外问卷调查都有哪些题?

提到问卷调查我们并不陌生,它经常被用作调查市场、商品意见等多种调查中。不过,提到国外问卷调查,大家就比较陌生了。简单来说就是国外的一些企业或机构为了改进自己的商品或服务,会列出一些问题来让大众回答,并用付费…

配置 Ubuntu 的网络

一、三种联网的模式 1. 桥接 VMnet0------> 主机和 Ubuntu 都有一个 ip 地址 2. NAT 模式 VMnet8-------->Ubuntu 和主机是同一个 ip 地址 3. 主机模式 VMnet1-------> 只能和主机进行通信 二、网络配置 1. 虚拟机----->设置 2. 确保网络适配器是桥接模式或…

网络基础学习:osi网络七层模型

osi网络七层模型 什么是OSI,什么是ISO?为什么ISO要提出OSI网络七层模型?OSI七层的划分以及具体内容第七层 应用层第六层 表示层第五层 会话层第四层 传输层第三层 网络层第二层 数据链路层第一层 物理层 每一层与设备的对应关系 什么是OSI,什…

央国企专场培训:太极信创研习院第33期ITAIP信创精华班培训在常州成功举办

4月25-27日,由太极计算机股份有限公司(太极信创研习院)联合中国中车集团有限公司(科技质量与信息化部)、中车信息技术有限公司(中车学习培训发展中心)共同举办的“信息技术应用创新专业人员&…

Java并发编程实践学习笔记(三)——共享对象之可见性

目录 1 过期数据 2 非原子的64位操作 3 锁和可见性 4 Volatile变量(Volatile Variables) 在单线程环境中,如果向某个变量写入值,在没有其他写入操作的情况下读取这个变量,那么总能得到相同的值。然而&…

java状态机实现订单状态转移

一、状态机 状态机是状态模式的一种应用,相当于上下文角色的一个升级版。在工作流或游戏等各种系统中有大量使用,如各种工作流引擎,它几乎是状态机的子集和实现,封装状态的变化规则。状态机可以帮助开发者简化状态控制的开发过程…

APP界面设计都有哪些好用的软件推荐

基于APP界面的不同功能,所选择的APP界面设计软件也会有所不同。然而,并不是说所有的APP界面设计软件都非常精通,熟练地学习几个常用的APP界面设计软件。以下10个APP界面设计软件将为您的团队提供绘制APP界面所需的必要功能。 1.即时设计 即…

OpenCV-Python实战(7) —— OpenCV 实现抖音视频倒放效果

1. 需求分析 参考:十行Python代码制作一个视频倒放神器,由于最近在学习 OpenCV ,因此试着使用 OpenCV 进行实现,学以致用(胡乱折腾)。 需要视频倒放,因此需要读取视频cv.VideoCapture&#xff1…

一键docker搭建mysql主从环境

一键docker搭建mysql主从环境 初衷准备阶段操作阶段注意事项 初衷 一开始为了玩一下shared-jdbc,要搭Mysql主从环境,这玩意虽然搭好,之后使用要是网络问题,或者sql执行出错,还得重新调Binlog位置,麻烦得很…

接口自动化测试之HTTP协议详解(敢称全网最全)

目录 协议 OSI模型 HTTP URL 报文 响应报文 HTTP扩展 协议 简单理解,计算机与计算机之间的通讯语言就叫做协议,不同的计算机之间只有使用相同的协议才能通信。所以网络协议就是为计算机网络中进行数据交换而建立的规则,标准或约定的集…

Node.js 使用RSA加密/解密

在本文中,我们将探讨如何在 Node.js 中使用 RSA 加密和解密。RSA 是一种非对称加密算法,它可以确保数据的安全传输。使用 RSA,我们可以在不直接传输密钥的情况下安全地加密和解密数据。 一、安装依赖 我们将使用 node-rsa 库来执行加密和解密…

2023 年Java经典面试题,基础篇01(持续更新)

本篇文章主要讲的是 2023 年Java最新面试题,持续更重中 基础概念与常识 原文地址:https://github.com/Snailclimb/JavaGuide Java 语言有哪些特点? 简单易学;面向对象(封装,继承,多态)&#…

《LeetCode》—— LeetCode刷题日记

本期,我给大家讲述的是关于 n数之和这类题目的讲解,我会给大家讲解两数之和,三数之和和四数之和这三道题目。 目录 (一)两数之和 (二)三数之和 (三)四数之和 &#xf…

NodeJs 最近各版本特性汇总

(预测未来最好的方法就是把它创造出来——尼葛洛庞帝) NodeJs 官方链接 github链接 V8链接 Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模…

对象应用:C++字符串和vector,对象的new与delete重构

对象应用 C字符串和vector字符串创建方式字符串拼接字符串追加 字符串截断autovector创建方式vector操作 new与delete重构new与delete的工作步骤new与delete重构应用只能生成栈对象只能生成堆对象 C字符串和vector C的字符串是一个对象,存在于std标准库中&#xff0…