如何在Flutter中以编程方式关闭持久性底页?

时间:2019-01-20 06:58:25

标签: dart flutter

如何在Flutter中以编程方式关闭持久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,
          ),
        ],
      ));
});

1 个答案:

答案 0 :(得分:1)

您可以使用

关闭底部的表格
Navigator.of(context).pop();

或者,您可以使用PersistentBottomSheetController关闭底页。这是您的操作方式。

PersistentBottomSheetController _controller; // instance variable

可以将以下事件置于onPressed()类型的事件中。

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

您可以使用

关闭它
_controller.close();
  

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

对不起,您必须自己做,到目前为止,Flutter中还没有内置的东西。您可以使用GestureDetector来按自己的方式操作事物。