【问题标题】:How to close a Persistent Bottom Sheet programatically in Flutter?如何在 Flutter 中以编程方式关闭 Persistent Bottom Sheet?
【发布时间】:2019-06-13 22:00:10
【问题描述】:

如何在 Flutter 中以编程方式关闭 Persistent BottomSheet?还有有没有办法只显示部分持久性底部工作表,用户可以向上拖动工作表以查看完整内容?

下面的代码是为了显示持久的底页。

homeScaffoldKey.currentState.showBottomSheet<Null>((BuildContext context) {
  return Container(
      height: 300.0,
      child: Column(
        mainAxisSize: MainAxisSize.min,
        children: <Widget>[
          Padding(
              padding: EdgeInsets.all(16.0),
              child: Text(
                'Persistent header for bottom bar!',
                textAlign: TextAlign.left,
              )),
          Text(
            'Then here there will likely be some other content '
                'which will be displayed within the bottom bar',
            textAlign: TextAlign.left,
          ),
        ],
      ));
});

【问题讨论】:

    标签: dart flutter


    【解决方案1】:

    您可以使用

    关闭底部工作表
    Navigator.of(context).pop();
    

    或者,您可以使用PersistentBottomSheetController 关闭底部工作表。这是你将如何做到的。

    PersistentBottomSheetController _controller; // instance variable
    

    可以将以下内容放入onPressed() 类型的事件中,以显示底部表格。

    _controller = homeScaffoldKey
        .currentState
        .showBottomSheet((BuildContext context) {
         return YourWidgetImplementation();
      },
    );
    

    你可以使用关闭它

    _controller.close();
    

    还有没有办法只显示一部分持久性底部工作表,用户可以向上拖动工作表以查看完整内容?

    对不起,你必须自己做,Flutter 目前还没有这样的内置功能。您可以使用GestureDetector 以您的方式操作。

    您可以使用this answer

    【讨论】:

    • 有什么方法可以知道底页的关闭和打开吗?
    • 你可以设置一个bool标志来跟踪它,你将是打开工作表的人,所以输入flag = true,当你使用_controller.close()关闭它时,你可以使用@ 987654332@.
    猜你喜欢
    • 2021-06-10
    • 2023-02-25
    • 2019-05-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 2016-09-19
    • 2011-07-15
    • 2015-11-26
    相关资源
    最近更新 更多