【问题标题】:Flutter Show Modal Bottom Sheet after build构建后颤振显示模态底部表
【发布时间】:2021-02-18 16:02:31
【问题描述】:
正如标题所说,我有一个 String 参数,当我加载 Home Stateful Widget 时,如果参数不为空,我想打开这个底页。
据我了解,我无法在 Home 小部件的构建功能中调用 showModalBottomSheet(),因为它无法在构建 Home 小部件时开始构建底部工作表,所以,有没有办法在Home Widget 建好了吗?
【问题讨论】:
标签:
flutter
dart
flutter-showmodalbottomsheet
【解决方案1】:
其中一种解决方案可能是使用 SchedulerBinding 实例的 addPostFrameCallback 函数。这样您就可以在 Home 小部件构建后调用 showModalBottomSheet。
import 'package:flutter/scheduler.dart';
...
@override
Widget build(BuildContext context) {
SchedulerBinding.instance.addPostFrameCallback((timeStamp) {
showModalBottomSheet<void>(
context: context,
builder: (BuildContext context) {
//Your builder code
},
);
});
//Return widgets tree for Home
}
【解决方案2】:
这是一种方法:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
showModalBottomSheet(
context: context,
builder: (BuildContext context) {
return Container(
child: Text('heyooo'),
);
}
);
});
return Scaffold(
appBar: AppBar(),
body: Container(),
);
}
}