• flutter-闪屏加载


    import 'package:flutter/material.dart';
    import 'home_page.dart';
    
    
    class SplashScreen extends StatefulWidget {
      @override
      _SplashScreenState createState() => _SplashScreenState();
    }
    
    class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderStateMixin {//混入
    
      //申明变量 控制动画的(控制动画的时间 效果等)
      AnimationController _controller;
      Animation  _animation;//控制动画
    
      @override
      void initState() {
        super.initState();
        _controller=AnimationController(vsync: this,duration: Duration(milliseconds: 3000)); // vsync垂直动态演示的意思  Duration持续时间
        _animation = Tween(begin: 0.0, end:1.0).animate(_controller);
        
        _animation.addStatusListener((status) {  //监听动画结束状态
          if(status == AnimationStatus.completed){
            // pushAndRemoveUntil 跳转到下一页 把动画结束掉
            Navigator.of(context).pushAndRemoveUntil(
              MaterialPageRoute(builder: (context) => MyHomePage(),), 
              (route) => route==null //固定写法  返回的是1个true
            );
          }
        });
        //使用控制器播放动画
        _controller.forward();
      }
    
      @override
      void dispose() { //销毁的时候
        _controller.dispose();
        super.dispose();
      }
    
      @override
      Widget build(BuildContext context) {
        return FadeTransition(
          opacity: _animation,
          child: Image.asset(
            'images/1111.jpg',
            scale: 1.0,
            fit: BoxFit.cover,
          ),
          
        );
      }
    }
  • 相关阅读:
    (2).net体系
    (1)php开篇常识
    java基础知识-xx
    java基础知识-字符串与数组
    java基础知识-流程控制
    小明的喷漆计划
    加分二叉树
    括号序列
    P1045
    胖男孩
  • 原文地址:https://www.cnblogs.com/lxz-blogs/p/13253320.html
Copyright © 2020-2023  润新知