您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“flutter怎么實現(xiàn)倒計時加載頁面”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“flutter怎么實現(xiàn)倒計時加載頁面”吧!
效果圖
實現(xiàn)步驟
1、pubspec.yaml中添加依賴 flustars,該包的TimelineUtil和TimerUtil類可以實現(xiàn)計時功能
dependencies: flustars: ^0.3.3
!注意空格哦
2、代碼實現(xiàn)
初始化TimerUtil
late TimerUtil util; double current_time = 0; void initState() { super.initState(); util = new TimerUtil(mInterval: 18, mTotalTime: 5000); util.setOnTimerTickCallback((millisUntilFinished) { setState(() { //每次時間間隔回調(diào),把每次當前總時間ms除以1000就是秒 current_time = millisUntilFinished / 1000; //倒計時結(jié)束時 跳轉(zhuǎn)到首頁 當然也可以等待資源加載完成再跳轉(zhuǎn) if (current_time == 0) { /*等待資源完成代碼塊*/ //跳轉(zhuǎn)到首頁 Navigator.push( context, MaterialPageRoute(builder: (context) => HomePage())); } }); });
構(gòu)造頁面
Widget build(BuildContext context) { return Scaffold( body: Column( children: [ Image.asset('images/2.0/beijing.jpg'), Container( alignment: Alignment.centerRight, child: SizedBox( height: 50, width: 50, child: Stack( children: [ Center(child: CircularProgressIndicator( value: current_time == 5.0 ? 0 : (5 - current_time) / 5, ),), Center(child: Text('${current_time.toInt()}'),) ],) ), ), ], )); }
完整代碼
import 'package:flustars/flustars.dart'; import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: LoadingPage(), ); } } class LoadingPage extends StatefulWidget { const LoadingPage({Key? key}) : super(key: key); @override _LoadingPageState createState() => _LoadingPageState(); } class _LoadingPageState extends State<LoadingPage> { late TimerUtil util; //計時對象 double current_time = 0; //當前時間 @override Widget build(BuildContext context) { return Scaffold( body: Column( children: [ Image.asset('images/2.0/beijing.jpg'), Container( alignment: Alignment.centerRight, child: SizedBox( height: 50, width: 50, child: Stack( children: [ Center(child: CircularProgressIndicator( value: current_time == 5.0 ? 0 : (5 - current_time) / 5, ),), Center(child: Text('${current_time.toInt()}'),) ],) ), ), ], )); } @override void initState() { super.initState(); util = new TimerUtil(mInterval: 18, mTotalTime: 5000); util.setOnTimerTickCallback((millisUntilFinished) { setState(() { //每次時間間隔回調(diào),把每次當前總時間ms除以1000就是秒 current_time = millisUntilFinished / 1000; //倒計時結(jié)束時 跳轉(zhuǎn)到首頁 當然也可以等待資源加載完成再跳轉(zhuǎn) if (current_time == 0) { /*等待資源完成代碼塊*/ //跳轉(zhuǎn)到首頁 Navigator.push( context, MaterialPageRoute(builder: (context) => HomePage())); } }); }); //開始倒計時 util.startCountDown(); } } class HomePage extends StatelessWidget { const HomePage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('HomePage'), ), ); } }
到此,相信大家對“flutter怎么實現(xiàn)倒計時加載頁面”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。