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

Flutter 多标签页显示 有关TabController需要知道的知识

背景

很多应用都需要导航栏加多个标签页的方式来构建一个多页显示逻辑,比如购物软件常有:已完成,已发货,待付款三个顶部导航按钮,点击则下面的页面显示不同属性的订单

正文

在flutter中,实现这样的功能需要依靠TabBar(进行页面选择)和TabBarView(展示不同页面),而TabController起到沟通这两个控件的作用。

DefaultTabController

DefaultTabController,它是一个flutter内置的简易控制器,常在功能不复杂时候用于快速构建页面
 

DefaultTabController(length: 3,child: Scaffold(appBar: AppBar(bottom: TabBar(tabs: [],),),body: TabBarView(children: [],),),
)

手动创建TabController

更复杂功能的场景,比如动态添加或删除标签页,监听标签页变化,需要手动创建TabController

步骤如下

  • StatefulWidget中初始化TabController
  • 使用with SingleTickerProviderStateMixin或TickerProviderStateMixin(如果有多个动画控制器)
  • 在initState方法中初始化TabController,并在dispose方法中释放它
class _MyTabbedPageState extends State<MyTabbedPage> with SingleTickerProviderStateMixin {TabController? _tabController;@overridevoid initState() {super.initState();_tabController = TabController(vsync: this, length: 3);}@overridevoid dispose() {_tabController?.dispose();super.dispose();}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(bottom: TabBar(controller: _tabController,tabs: [],),),body: TabBarView(controller: _tabController,children: [],),);}
}

性能

使用TabBarView,所有的标签页内容默认都会被加载。如果每个标签页中都有复杂的布局或需要加载大量数据,会影响性能

http://www.lryc.cn/news/308002.html

相关文章:

  • 【Elasticsearch专栏 16】深入探索:Elasticsearch的Master选举机制及其影响因素分析
  • Leetcode : 215. 数组中的第 K 个最大元素
  • node express实现Excel文档转json文件
  • 【算法分析与设计】最大二叉树
  • 面试问答总结之并发编程
  • 红外测温仪芯片方案开发设计
  • 五、数组——Java基础篇
  • 如何用golang写一个自己的后端框架
  • linux 如何给服务器批量做免密,如何批量挂在磁盘
  • Android Activity的生命周期详解
  • python学习笔记-内置类型
  • 校园微社区微信小程序源码/二手交易/兼职交友微信小程序源码
  • 如何在 Angular 中使用 NgTemplateOutlet 创建可重用组件
  • 改进的yolo交通标志tt100k数据集目标检测(代码+原理+毕设可用)
  • nginx 日志,压缩,https功能介绍
  • 代码随想录三刷day17
  • postcss-px-to-viewport include属性
  • C++设计模式——抽象工厂模式
  • Windows安装VNC连接工具并结合cpolar实现远程内网Ubuntu系统桌面
  • Vue3 Hooks函数使用及封装思想
  • YOLOv8改进涨点,添加GSConv+Slim Neck,有效提升目标检测效果,代码改进(超详细)
  • 华为s5720s-28p-power-li-ac堆叠配置
  • c# aes加密解密私钥公钥通钥
  • 上拉电阻与下拉电阻、电容的作用
  • 《Spring Security 简易速速上手小册》第1章 Spring Security 概述(2024 最新版)
  • vue页面菜单权限问题解决
  • C++面试宝典第33题:数组组成最大数
  • “影像承载初心” 国际数字影像产业园2024首届摄影沙龙诚邀您的参与!
  • 【C语言】while循环语句
  • 2024数字中国创新大赛·数据要素赛道“能源大数据应用赛”正式上线!参赛指南请查收