我想在不满足某些条件时,在按钮上方显示一个简单的消失的错误消息。看起来Flutter的Snackbar非常适合这个目的。
但是,我很难将Snackbar的位置更改为屏幕最底部以外的任何位置。这可能吗?如果不可能,是否有更适合此目的的Widget?
我当前的snackbar代码:
class ContinueButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
margin: const EdgeInsets.only(
bottom: 24.0, top: 24.0),
child: Align(
alignment: FractionalOffset.bottomCenter,
child: MaterialButton(
onPressed: () {
final snackBar = SnackBar(
content: Text('Yay! A SnackBar!'),
);
Scaffold.of(context).showSnackBar(snackBar);
},
child: Text('Continue'),
height: 40.0,
minWidth: 300.0,
color: Colors.greenAccent,
),
),
);
}
}
6条答案
按热度按时间ih99xse11#
您可以尝试将行为设置为SnackBarBehavior.floating,并根据需要设置边距
此解决方案的唯一问题是下面的所有内容都无法单击。
若要解决此可单击问题,请将dismissDirection属性设置为DismissDirection.none。这也意味着可以通过向下拖动取消snackbar的默认属性将丢失。(默认值为DismissDirection.down)
ssgvzors2#
您可以在snackbar中放置一个容器来实现这一点。由于snackbar可以容纳任何小部件,并且您可以将其背景颜色更改为透明,因此您可以使用带有自定义填充和边框的容器来给予定位效果。
d5vmydt93#
很遗憾,不能。但是您可以使用https://api.flutter.dev/flutter/widgets/Overlay-class.html在另一个小部件上显示一个小部件(在您的情况下,就像在工具提示小部件上),并创建一个类似于Snackbar小部件的小部件
bvk5enib4#
恐怕你不能这么做。
A lightweight message with an optional action which briefly displays at the bottom of the screen.
您可以将其更改为behavior和elevation
cvxl0en25#
您可以使用Flushbar代替SnackBar
请查看详细信息
flushbar
**注:**截至2022年已停产
ryevplcw6#
适合我:
您可以使用“对齐” Package 容器。