答案 0 :(得分:0)
你不能设置它!它等于从底部开始加上SnackBar
的高度。
但是如果要调整它,则可以不使用Scaffold
中的FAB,而是将主体设为Stack
,最新的一层是FAB,并将其包装在{{1}中},因此可以根据需要从底部到底部适当距离为其设置动画。
答案 1 :(得分:0)
您尝试过
floatingActionButton: Column(mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end, children: [
FloatingActionButton(
onPressed: _doOrder,
mini: false,
elevation: 10,
child: Icon(EvaIcons.shoppingBagOutline),
),
Container(
height: 50,
)
]),
答案 2 :(得分:0)
如果您希望ListBox
始终具有底部填充,则可以使用FloatingActionButton
小部件将其包装,如下所示:
Padding
如果希望@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: Padding(
padding: EdgeInsets.only(bottom: 40.0),
child: FloatingActionButton(
onPressed: () {},
),
),
appBar: AppBar(
title: Text('SnackBar'),
),
body: Builder(
builder: (context) => RaisedButton(
onPressed: () => _displaySnackBar(context),
child: Text('Show SnackBar'),
),
),
);
}
可见时FloatingActionButton
有一个新的填充,则可以在显示SnackBar
时更改填充,如下所示:
SnackBar
编辑:如果要避免将double _fabPadding = 0.0;
_displaySnackBar(BuildContext context) {
final snackBar = SnackBar(content: Text('SnackBar'));
setState(() {
_fabPadding = 40.0;
});
Scaffold.of(context).showSnackBar(snackBar).closed.then((_) {
setState(() {
_fabPadding = 0.0;
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: Padding(
padding: EdgeInsets.only(bottom: _fabPadding),
child: FloatingActionButton(
onPressed: () {},
),
),
appBar: AppBar(
title: Text('SnackBar'),
),
body: Builder(
builder: (context) => RaisedButton(
onPressed: () => _displaySnackBar(context),
child: Text('Show SnackBar'),
),
),
);
}
推到SnackBar
的位置,可以将FloatingActionButton
的行为属性设置为{{1 }}
floating→const SnackBarBehavior此行为将导致SnackBar 显示在脚手架中其他小部件的上方。这包括被 显示在BottomNavigationBar和FloatingActionButton上方。
答案 3 :(得分:0)
尝试设置:行为:SnackBarBehavior.floating 可能有效
SnackBar(behavior: SnackBarBehavior.floating, content: Padding(child: Text(message),
padding: EdgeInsets.only(bottom: 30),)));
答案 4 :(得分:0)
您可以使用钥匙将快餐栏连接到支架上。
例如:-
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
void showSnackBar(String text) {
_scaffoldKey.currentState.showSnackBar(SnackBar(
content: Text(
text,
textAlign: TextAlign.center,
),
duration: Duration(seconds: 0, milliseconds: 750),
));
}
然后将密钥添加到支架:
Scaffold(
key: _scaffoldKey,
...
);
您现在可以从任何地方调用此功能。