zoukankan      html  css  js  c++  java
  • flutter 保持页面状态

    import 'package:flutter/material.dart';
    
    import 'KeepAliveDemo.dart';
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.green,  //定义主题风格    primarySwatch
          ),
          home: KeepAliveDemo(),
        );
      }
    
    }
    import 'package:flutter/material.dart';
    import 'package:flutter_app/MyHomePage.dart';
    class KeepAliveDemo extends StatefulWidget {
      _KeepAliveDemoState createState() => _KeepAliveDemoState();
    }
    /*
    第一步:with是dart的关键字,意思是混入的意思,
    就是说可以将一个或者多个类的功能添加到自己的类无需继承这些类,
    避免多重继承导致的问题。
    SingleTickerProviderStateMixin 主要是我们初始化TabController时,
    需要用到vsync ,垂直属性,然后传递this
    */
    class _KeepAliveDemoState extends State<KeepAliveDemo> with SingleTickerProviderStateMixin {
      TabController _controller;
    
      @override
      void initState(){
        super.initState();
        _controller = TabController(length:3, vsync: this);
      }
      @override //第二步保持页面状态返回true
    bool get wantKeepAlive => true;
    //重写被释放的方法,只释放TabController @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: <Widget>[ MyHomePage(), MyHomePage(), MyHomePage() ], ) ); } }

    效果:

  • 相关阅读:
    使用setTimeout()代替setInterval()
    音视频入门-02-RGB拼图
    音视频入门-01-认识RGB
    CMake入门-04-自定义编译选项
    CMake入门-03-还是HelloWorld
    CMake入门-02-HelloWorld扩展
    CMake入门-01-从HelloWorld开始
    HTML页面启动sass监听编译成css文件
    安装+配置Express
    安装+配置Nginx
  • 原文地址:https://www.cnblogs.com/loaderman/p/11350208.html
Copyright © 2011-2022 走看看