【问题标题】: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(),
        );
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-08-03
      • 2021-05-28
      • 2021-03-14
      • 2019-03-10
      • 1970-01-01
      • 2021-09-12
      • 2019-03-22
      • 1970-01-01
      • 2018-10-24
      相关资源
      最近更新 更多