main.dart
import 'package:flutter/material.dart';
import 'package:flutter_yzdzy/page/splash.dart';
import 'package:flutter_yzdzy/utlis/statusbar_utils.dart';
import 'package:sp_util/sp_util.dart';
import 'page/home_index_page.dart';
import 'res/my_colors.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SpUtil.getInstance();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
routes: <String, WidgetBuilder>{
//配置路径
'/HomePage': (BuildContext context) => new HomePage(),
},
theme: ThemeData(primaryColor: MyColors.color_main),
home: Splash(),
);
}
}
splash.dart
import 'package:flutter/material.dart';
import 'package:flutter_yzdzy/page/home_index_page.dart';
import 'package:flutter_yzdzy/utlis/statusbar_utils.dart';
import '../main.dart';
class Splash extends StatefulWidget {
@override
_SplashState createState() => _SplashState();
}
class _SplashState extends State<Splash> with SingleTickerProviderStateMixin {
AnimationController _controller;
Animation _animation;
@override
void initState() {
super.initState();
StatusBarUtils.setStatusBarColor(Colors.white);
_controller = AnimationController(
duration: Duration(milliseconds: 3000), vsync: this);
_animation = Tween(begin: 0.0, end: 1.0).animate(_controller);
_animation.addStatusListener((status) {
print(status);
if (status == AnimationStatus.completed) {
//跳转主页 且销毁当前页面
Navigator.of(context).pushAndRemoveUntil(
new MaterialPageRoute(builder: (context) => new HomePage()),
(Route<dynamic> rout) => false);
}
});
_controller.forward();
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
color: Colors.white,
),
child: FadeTransition(
opacity: _animation,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Image(image: AssetImage('images/list_loading.png')),
Text(
'精挑细选',
style: TextStyle(color: Colors.black87, fontSize: 20),
),
SizedBox(
height: 50,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
"为了 ",
style: TextStyle(color: Colors.black87, fontSize: 18),
),
Text(
"优质的资源",
style: TextStyle(color: Colors.blue, fontSize: 18),
),
],
),
],
),
),
);
}
}
HomePage 就是你得主页了就不展示了
状态栏颜色设置的工具类
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class StatusBarUtils {
/**
* 获取状态栏颜色并设置
*/
static Color getStatusBarColor() {
return SystemChrome.latestStyle.statusBarColor;
}
static void setStatusBarColor(Color color) {
if (color == Colors.white) {
//白色+白色 字体将无法显示
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: color, statusBarIconBrightness: Brightness.dark));
return;
}
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: color, statusBarIconBrightness: Brightness.light));
}
/**
* 跟随上一个页面一样的状态栏
*/
static void setStatusBarColorlatestStyle() {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: getStatusBarColor(),
statusBarIconBrightness: Brightness.light));
}
}