小智 7
我们可以用
dismissDirection: DismissDirection.none
代码片段:
@override
Widget build(BuildContext context) {
return Scaffold(
body: Builder(builder: (context) {
return RaisedButton(
onPressed: () => showSnackbar(context),
child: Text("Show snackbar"),
);
}),
);
}
void showSnackbar(context) {
Scaffold.of(context)
.showSnackBar(SnackBar(
dismissDirection: DismissDirection.none,
content: Text("I am here"),
backgroundColor: Colors.blue,
))
);
}
Run Code Online (Sandbox Code Playgroud)
GestureDetector在里面放置一个SnackBar content并聆听可以onVerticalDragStart让它不那么可被忽略,而使用额外的则\n\n\n使它真的很烦人 - 但仍然可以被忽略。:)
在此示例中,它确实防止从该content区域消除,但不能从 SnackBar 填充/边距区域消除。
void _showSnackBar(BuildContext context) {
final snackbar = SnackBar(
duration: Duration(days: 1),
content: GestureDetector(
behavior: HitTestBehavior.opaque,
onVerticalDragStart: (_) => debugPrint("no can do!"),
child: Text("Hi! Don't try to dismiss me.\n\n\n"),
)
);
Scaffold.of(context).showSnackBar(snackbar);
}
Run Code Online (Sandbox Code Playgroud)
我什至尝试简单地将小SnackBar部件直接放入 中- 但结果是相同的,甚至将.ScaffoldbottomsheetGestureDetectorSnackBar
你可以试试这个。
@override
Widget build(BuildContext context) {
return Scaffold(
body: Builder(builder: (context) {
return RaisedButton(
onPressed: () => showSnackbar(context),
child: Text("Show snackbar"),
);
}),
);
}
void showSnackbar(context) {
Scaffold.of(context)
.showSnackBar(SnackBar(
content: Text("I am here"),
backgroundColor: Colors.blue,
))
.closed
.then((reason) {
if (reason == SnackBarClosedReason.swipe)
showSnackbar(context);
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2945 次 |
| 最近记录: |