我可以在应用程序启动时显示模态底部表单吗?

cus*_*pps 5 dart flutter bottom-sheet

我试图在应用程序启动时自动在 flutter 中显示bottom sheeet,但它出现错误。仅当我使用单击事件实例化它时,它才适用于我。但我怎样才能在屏幕启动时弹出它呢?

 @override
  Widget build(BuildContext context) {
    showModalBottomSheet(context: context, builder: (BuildContext context) {
      return Container();
    });
Run Code Online (Sandbox Code Playgroud)

Ahm*_*tab 15

您可以在第一个屏幕的 initState 中执行此操作,如下所示

 @override
  void initState() {
    // TODO: implement initState

    Future.delayed(Duration(seconds: 0)).then((_) {
      showModalBottomSheet(
          context: context,
          builder: (builder) {
            return Container();
          });
    });
    super.initState();
  }


Run Code Online (Sandbox Code Playgroud)

你需要这样做,使用 future 和延迟,因为 initState 不允许 .of 在里面,这有点黑客,但它有效


Sac*_*oma 7

简单的解决方案

@override
  void initState() {
   
    super.initState();

    WidgetsBinding.instance.addPostFrameCallback((_) async {
      showModalBottomSheet(context: context, builder: (BuildContext context) {
      return Container();
    });
    });

  }
Run Code Online (Sandbox Code Playgroud)