博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20个Flutter实例视频教程-第08节: 保持页面状态
阅读量:4671 次
发布时间:2019-06-09

本文共 1815 字,大约阅读时间需要 6 分钟。

博客地址:

视频地址:

 

创建项目demo05

 

keepAliveDemo是一个自定义组件

 

keepAliveDemo这个组件必须是个动态组件,因为他来回的切换还要变换里面的效果

sfu快捷键快速生成

第一个知识点就是with。

这里我们继承自State,如果我们还要继承其他的类呢?这里就用到了with。表示混入。为了解决多重继承的问题

混入with SingleTickerProviderStateMixin。作用就是我们在初始化Tabcontroller的时候要用到一个垂直的选项。这个选项必须在这个混入里面使用

 

我们现在已经混入了这个类

定义TabController _controller.

因为要保持来回切换这个状态页面不变。所以要重写我们的销毁方法和initState方法

 

再重写我们的销毁方法

 

然后再来写我们的TabBar

 

最终效果:

 

 

代码

import 'package:flutter/material.dart';void main() => runApp(MyApp());class MyApp extends StatelessWidget {  // This widget is the root of your application.  @override  Widget build(BuildContext context) {    return MaterialApp(      title: 'Flutter Demo',      theme: ThemeData(        primarySwatch: Colors.blue,      ),      home: KeepAliveDemo()    );  }}class KeepAliveDemo extends StatefulWidget {  @override  _KeepAliveDemoState createState() => _KeepAliveDemoState();}class _KeepAliveDemoState extends State
with SingleTickerProviderStateMixin { TabController _controller; @override void initState() { super.initState(); _controller=TabController(length: 3,vsync:this); } @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Keep Alive Demo'), bottom: TabBar( controller: _controller, tabs:[ Tab(icon: Icon(Icons.directions_car),), Tab(icon: Icon(Icons.directions_transit),), Tab(icon: Icon(Icons.directions_bike),), ] ), ), body: TabBarView( controller: _controller, children:
[ Text('1111'), Text('2222'), Text('3333'), ], ), ); }}
main.dart

 

转载于:https://www.cnblogs.com/wangjunwei/p/10588295.html

你可能感兴趣的文章
英文参考文献标准格式:论文参考文献格式规范(转载)
查看>>
css div框加小箭头
查看>>
Eclipse快捷键与使用技巧总结
查看>>
Solr4.8.0源码分析(16)之SolrCloud索引深入(3)
查看>>
PEP8 - Python编码规范
查看>>
div放置图片总结
查看>>
FZOJβ #45. 染色问题
查看>>
Python之SYS模块
查看>>
webapi文件上传和下载
查看>>
HDU 1540 Tunnel Warfare [二分 + 线段树]
查看>>
C++:构造函数和析构函数能否为虚函数
查看>>
win7便笺元数据损坏,最新解决办法
查看>>
mongod
查看>>
vim配置python高亮和缩进
查看>>
Spring3.0.5 获取表中自增的主键(mysql)
查看>>
delphi dxBarManager 的dxBarEdit 输入问题
查看>>
Hadoop入门介绍一
查看>>
面试经典-分金条
查看>>
利用AutoSPSourceBuilder和Autospinstaller自动安装SharePoint Server 2013图解教程——Part 1...
查看>>
ZOJ-2972-Hurdles of 110m(记忆化搜索)
查看>>