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

Can i show modal bottom sheet at app launch flutter?

我试图在应用程序启动时自动显示 bottom sheeet,但出现错误。当我用点击事件实例化它时,它只对我有用。但是我怎样才能在屏幕启动时弹出它呢?

 @override
  Widget build(BuildContext context) {
    showModalBottomSheet(context: context, builder: (BuildContext context) {
      return Container();
    });

您可以在第一个屏幕的 initState 中这样做,就像这样

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

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


你需要这样做,使用 future 和 delayed 因为 initState dosent 允许 .of 在里面,这有点 hack 但它有效

简单的解决方案

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

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

  }