正如标题所说,我有一个字符串参数,当我加载 Home Stateful Widget 时,如果参数不为空,我想打开这个底页。
据我了解,我无法调用showModalBottomSheet()
Home 小部件的构建功能,因为它在构建 Home Widget 时无法开始构建底部工作表,那么,有没有办法在构建 Home Widget 后立即调用它?
正如标题所说,我有一个字符串参数,当我加载 Home Stateful Widget 时,如果参数不为空,我想打开这个底页。
据我了解,我无法调用showModalBottomSheet()
Home 小部件的构建功能,因为它在构建 Home Widget 时无法开始构建底部工作表,那么,有没有办法在构建 Home Widget 后立即调用它?
其中一种解决方案可能是使用 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
}
这是一种方法:
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(),
);
}
}