一些学习网站

  1. 《Flutter实战》

  2. Flutter 社区中文资源

如何强制竖屏

1
2
3
4
5
6
void main() {
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
.then((_) {
runApp(new MyApp());
});
}

页面跳转前权限判定

很多页面需要判定是都具有权限才可以进入,传统一点的方法是跳转前判定一下,如下:

1
2
3
4
5
if (权限判定) {
Navigator.push(context, Page1())
} else {
// 提示无权限或者跳转相关页面
}

这种方法可以实现,但是很繁琐,推荐使用路由生成 钩子来统一处理,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
onGenerateRoute: (RouteSettings settings) {
WidgetBuilder builder;
if (有权限) {
builder = (BuildContext context) => DemoPage1();
} else {
builder = (BuildContext context) => DemoPage12();
}
return new MaterialPageRoute(builder: builder, settings: settings);
},
// 余略
);
}
}