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

flutter 功能

flutter功能

带缓存的tab切换功能

使用PageController进行对应tab的widget缓存

late PageController _keepActiveVC;///当前使用的视图索引late int _index;late PageController _keepActiveVC;/// 所有视图final List<Widget> _bodys = [];void initState() {super.initState();_index = 0;//页面控制器初始化_keepActiveVC = PageController(initialPage: _index );}- Widget build(BuildContext context) {return Scaffold(body: _body(), bottomNavigationBar: _buildNavigationBar());}BottomNavigationBar _buildNavigationBar() {BottomNavigationBar bar = MyBottomNavigationBar(......onTap: (i) {setState(() {_index = i;///切换tab是跳转页面_keepActiveVC.jumpToPage(_index);});},);return bar;}Widget _body() {return PageView(///禁用滚动physics: const NeverScrollableScrollPhysics(),controller: _keepActiveVC, //初始化的PageControllerchildren: _bodys, //当前所有视图的数组onPageChanged: (index) {_index = index; //切换选中的时候进行赋值},);

body中的子widget需要with AutomaticKeepAliveClientMixin,并返回wantKeepAlive为true;

class _MyView extends State<MyView> with AutomaticKeepAliveClientMixin{
......bool get wantKeepAlive => widget.cacheWebView;
}

异常

Flutter 报错 setState() or markNeedsBuild() called during build

原因:视图未构建成功时调用了setState()或markNeedsBuild()方法
解决方法:
1.修改构建过程
2.使用官方提供了一个组件创建完成的回调通知方法

WidgetsBinding.instance.addPostFrameCallback((_) { //需要创建的小组件});
http://www.lryc.cn/news/301932.html

相关文章:

  • Sql Server 存储过程
  • 二.重新回炉Spring Framework:Spring Framework主要组件概览
  • Open CASCADE学习|曲线向曲面投影
  • 怎样连接局域网?
  • OpenAI 发布文生视频大模型 Sora,AI 视频要变天了,视频创作重新洗牌!AGI 还远吗?
  • java基础day01
  • 读十堂极简人工智能课笔记06_自然语言处理
  • Linux文件信息,drwxr-xr-x. 2 root root 6 Jan 30 17:42 Desktop
  • 深入理解Promise:用法和面试问题解析
  • css2背景
  • KUKA库卡机器人编程语言是什么?
  • Django学习全纪录:Django视图和路由的配置,应用的创建以及注册
  • LabVIEW卫星电视接收仿真系统
  • docker修改工作目录
  • Ps:统计
  • java生成pdf
  • 鸿蒙应用/元服务开发-窗口概述
  • 引入成熟的Pytest自动化测试框架
  • 学习总结18
  • SpringMVC的执行流程
  • Vue项目启动过程全记录(node.js运行环境搭建)
  • Linux下如何配置环境变量
  • PyCharm 主题和字体 (Scheme Editor Font)
  • 二叉树相关OJ题
  • 文物保护系统守护历史岁月,成都青铜展科技闪耀
  • [计算机网络]---Http协议
  • Hexo删除主题
  • RK3399平台开发系列讲解(USB篇)U盘等存储类设备
  • 一个页面需要加载大量的图片,如何提升用户体验?
  • JRT监听-PDF-Excel-Img