Android 颤振:带有持续时间和进度条的启动屏幕

Android 颤振:带有持续时间和进度条的启动屏幕,android,flutter,Android,Flutter,我开始尝试颤振,现在正在尝试颤振。我正试图实现一个splashscreen。 我的要求: flash屏幕应在应用程序启动时显示3秒 它应该在3秒钟后消失 它应该在显示和显示时显示一个进度条 在3秒内完成 试试这个 你可以用 建造师 Future.delayed(Duration duration, [ dynamic computation() ]) 创建一个在延迟后运行其计算的未来 计算将在给定的持续时间结束后执行,未来将根据计算结果完成 如果持续时间为0或更小,则在所有微任务运行后,它

我开始尝试颤振,现在正在尝试颤振。我正试图实现一个splashscreen。 我的要求:

  • flash屏幕应在应用程序启动时显示3秒
  • 它应该在3秒钟后消失
  • 它应该在显示和显示时显示一个进度条 在3秒内完成
试试这个

你可以用

建造师

Future.delayed(Duration duration, [ dynamic computation() ]) 
创建一个在延迟后运行其计算的未来

计算将在给定的持续时间结束后执行,未来将根据计算结果完成

如果持续时间为0或更小,则在所有微任务运行后,它将在下一个事件循环迭代中完成

示例代码

new Future.delayed(const Duration(seconds: 3), () {
  //  You action here
});
import 'dart:async';

import 'package:flutter/material.dart';
void main() {
  runApp(MaterialApp(
    debugShowCheckedModeBanner: false,
    theme: ThemeData(
      primarySwatch: Colors.blue,
    ),
    home: SplashScreen(),

  ));

//  runApp(HomePage());
}

class SplashScreen extends StatefulWidget {
  @override
  _SplashScreenState createState() => new _SplashScreenState();
}

class _SplashScreenState extends State<SplashScreen> {
  startTime() async {
    var _duration = new Duration(seconds: 2);
    return new Timer(_duration, navigationPage);
  }

  void navigationPage() {
    Navigator.of(context).pushReplacementNamed('/Registration');
  }

  @override
  void initState() {
    super.initState();
    startTime();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: FlutterLogo(
          size: 100.0,
        ),
      ),
    );
  }
}
示例代码

new Future.delayed(const Duration(seconds: 3), () {
  //  You action here
});
import 'dart:async';

import 'package:flutter/material.dart';
void main() {
  runApp(MaterialApp(
    debugShowCheckedModeBanner: false,
    theme: ThemeData(
      primarySwatch: Colors.blue,
    ),
    home: SplashScreen(),

  ));

//  runApp(HomePage());
}

class SplashScreen extends StatefulWidget {
  @override
  _SplashScreenState createState() => new _SplashScreenState();
}

class _SplashScreenState extends State<SplashScreen> {
  startTime() async {
    var _duration = new Duration(seconds: 2);
    return new Timer(_duration, navigationPage);
  }

  void navigationPage() {
    Navigator.of(context).pushReplacementNamed('/Registration');
  }

  @override
  void initState() {
    super.initState();
    startTime();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: FlutterLogo(
          size: 100.0,
        ),
      ),
    );
  }
}
导入'dart:async';
进口“包装:颤振/材料.省道”;
void main(){
runApp(材料应用程序)(
debugShowCheckedModeBanner:false,
主题:主题数据(
主样本:颜色。蓝色,
),
主页:SplashScreen(),
));
//runApp(主页());
}
类SplashScreen扩展StatefulWidget{
@凌驾
_SplashScreenState createState()=>new_SplashScreenState();
}
类的状态扩展了状态{
startTime()异步{
var_持续时间=新的持续时间(秒:2);
返回新计时器(_持续时间,导航页面);
}
无效导航页(){
Navigator.of(context.pushReplacementNamed('/Registration');
}
@凌驾
void initState(){
super.initState();
开始时间();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:中(
孩子:我的标志(
尺寸:100.0,
),
),
);
}
}

检查此处的完整代码

import 'package:flutter/material.dart';
import 'package:splashscreen/splashscreen.dart';

void main() {
  runApp(MaterialApp(
    debugShowCheckedModeBanner: false,
    home: MyApp(),
  ));
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return SplashScreen(
        seconds: 14,
        navigateAfterSeconds: new AfterSplash(),
        image: new Image.asset('assets/logo.png'),
        backgroundColor: Colors.white,
        photoSize: 100.0,
        );
  }
}

class AfterSplash extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
          title: Text("Welcome In SplashScreen Package"),
          automaticallyImplyLeading: false),
      body: Center(
        child: Text(
          "Done!",
          style: TextStyle(fontWeight: FontWeight.bold, fontSize: 30.0),
        ),
      ),
    );
  }
}

那有什么问题?这个问题太模糊了。需要一个带有延迟和进度条的闪屏实现代码@MikeSpeedWhat-about launch_background.xml。在那里要做哪些更改?