永久持久底部 sheet 颤动
Permanent Persistent Bottom sheet flutter
我想让我的臀部 sheet 一直显示在屏幕上,直到我用代码关闭它。通常底部 sheet 可以通过按下后退按钮(设备或应用程序栏)或什至只是通过向下的手势来关闭。我怎样才能禁用它?
_scaffoldKey.currentState
.showBottomSheet<Null>((BuildContext context) {
final ThemeData themeData = Theme.of(context);
return new ControlBottom(
songName: songName,
url: url,
play: play,
pause: pause,
state: test,
themeData: themeData,
);
}).closed.whenComplete((){
});
控制按钮是一个不同的小部件。
您可以通过在 leading
属性 中提供一个空 container
来删除应用栏后退按钮。
AppBar(
leading: Container(),
);
但我们无法控制设备的后退按钮,按下后退按钮时底页会消失。
许多替代方法之一可能是使用 stack
和 positioned
& opacity
widget
示例:
Stack(
children: <Widget>[
// your code here
Positioned(
left: 0.0,
right: 0.0,
bottom: 0.0,
child: Opacity(
opacity: _opacityLevel,
child: Card(
child: //Your Code Here,
),
),
),
// your code here
],
);
您可以在选择歌曲时将 _opacityLevel
从 0.0 更改为 1.0。
从你的代码中我可以看出,你将在顶部有一个列表视图,在底部有一个音乐控件。确保在 listView 的末尾添加一些 Padding
,这样当您一直向下滚动时,您的最后一个列表项不会隐藏在您的音乐控制器卡后面。
如果您想进一步自定义音乐控制器的外观。您可以使用 animationController
或 sizeAnimation
像 bottomSheet
一样从底部滑动它。
希望对您有所帮助。
您还可以使用 WillPopScope
小部件来控制按下后退按钮:
Widget _buildBottomSheet() {
return WillPopScope(
onWillPop: () {
**here you can handle back button pressing. Just leave it empty to disable back button**
},
child: **your bottom sheet**
)),
);
}
脚手架现在有一个底部 sheet 参数,这个底部 sheet 不能通过向下滑动屏幕来关闭。
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(....),
bottomSheet: Container(
child: Text('Hello World'),
),
);
}
将此参数添加到 showmodalbottomsheet,
isDismissible: false, enableDrag: false,
我想让我的臀部 sheet 一直显示在屏幕上,直到我用代码关闭它。通常底部 sheet 可以通过按下后退按钮(设备或应用程序栏)或什至只是通过向下的手势来关闭。我怎样才能禁用它?
_scaffoldKey.currentState
.showBottomSheet<Null>((BuildContext context) {
final ThemeData themeData = Theme.of(context);
return new ControlBottom(
songName: songName,
url: url,
play: play,
pause: pause,
state: test,
themeData: themeData,
);
}).closed.whenComplete((){
});
控制按钮是一个不同的小部件。
您可以通过在 leading
属性 中提供一个空 container
来删除应用栏后退按钮。
AppBar(
leading: Container(),
);
但我们无法控制设备的后退按钮,按下后退按钮时底页会消失。
许多替代方法之一可能是使用 stack
和 positioned
& opacity
widget
示例:
Stack(
children: <Widget>[
// your code here
Positioned(
left: 0.0,
right: 0.0,
bottom: 0.0,
child: Opacity(
opacity: _opacityLevel,
child: Card(
child: //Your Code Here,
),
),
),
// your code here
],
);
您可以在选择歌曲时将 _opacityLevel
从 0.0 更改为 1.0。
从你的代码中我可以看出,你将在顶部有一个列表视图,在底部有一个音乐控件。确保在 listView 的末尾添加一些 Padding
,这样当您一直向下滚动时,您的最后一个列表项不会隐藏在您的音乐控制器卡后面。
如果您想进一步自定义音乐控制器的外观。您可以使用 animationController
或 sizeAnimation
像 bottomSheet
一样从底部滑动它。
希望对您有所帮助。
您还可以使用 WillPopScope
小部件来控制按下后退按钮:
Widget _buildBottomSheet() {
return WillPopScope(
onWillPop: () {
**here you can handle back button pressing. Just leave it empty to disable back button**
},
child: **your bottom sheet**
)),
);
}
脚手架现在有一个底部 sheet 参数,这个底部 sheet 不能通过向下滑动屏幕来关闭。
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(....),
bottomSheet: Container(
child: Text('Hello World'),
),
);
}
将此参数添加到 showmodalbottomsheet,
isDismissible: false, enableDrag: false,