Flutter——启动页白屏的优化
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// 使用FutureBuilder来处理启动时的异步操作,避免白屏
@override
Widget build(BuildContext context) {
return MaterialApp(
home: FutureBuilder(
future: Future.delayed(Duration.zero, () {}), // 模拟异步操作,例如数据加载
builder: (context, snapshot) {
// 如果异步操作完成,则显示主页,否则显示启动页
return snapshot.connectionState == ConnectionState.done ? HomePage() : SplashPage();
},
),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text('主页'),
),
);
}
}
class SplashPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: CircularProgressIndicator(),
),
);
}
}
这个代码示例展示了如何使用FutureBuilder
来避免Flutter应用启动时出现白屏的问题。在这个例子中,我们模拟了一个简单的异步操作(通过Future.delayed
),并根据操作的完成状态来决定显示启动页还是主页。这样做可以让启动过程更加平滑,提升用户体验。
评论已关闭