构建后 Flutter Show Modal Bottom Sheet

Flutter Show Modal Bottom Sheet after build

正如标题所说,我有一个字符串参数,当我加载 Home Stateful Widget 时,如果参数不为空,我想打开这个底部 sheet。

据我了解,我无法在 Home 小部件的构建函数中调用 showModalBottomSheet(),因为它无法在构建 Home Widget 时开始构建底部 sheet,所以,是否存在构建 Home Widget 后立即调用它的方法?

这是一种方法:

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(),
    );
  }
}

其中一个解决方案可能是使用 SchedulerBinding 实例的 addPostFrameCallback 函数。这样您就可以在构建主页小部件后调用 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
  }