如何在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,
),
],
));
});
答案 0 :(得分:1)
您可以使用
关闭底部的表格Navigator.of(context).pop();
或者,您可以使用PersistentBottomSheetController
关闭底页。这是您的操作方式。
PersistentBottomSheetController _controller; // instance variable
可以将以下事件置于onPressed()
类型的事件中。
_controller = homeScaffoldKey
.currentState
.showBottomSheet((BuildContext context) {
return YourWidgetImplementation();
},
);
您可以使用
关闭它_controller.close();
还有没有办法只显示永久性底部工作表的一部分,用户可以向上拖动该工作表以查看全部内容?
对不起,您必须自己做,到目前为止,Flutter中还没有内置的东西。您可以使用GestureDetector
来按自己的方式操作事物。