如何在颤动中显示 SnackBar?
Posted
技术标签:
【中文标题】如何在颤动中显示 SnackBar?【英文标题】:how to show SnackBar in flutter? 【发布时间】:2021-03-11 16:35:01 【问题描述】:如果没有可用的互联网连接,我想显示 SnackBar 怎么办?我想在别的地方使用snackbar怎么办?
Future<void> checkStatus(ConnectivityResult result) async
if(result == ConnectivityResult.mobile || result == ConnectivityResult.wifi)
changeValues("Connected");
else
Show SnackBar Here
【问题讨论】:
【参考方案1】:签出this。
final snackBar = SnackBar(content: Text('Yay! A SnackBar!'));
// Find the Scaffold in the widget tree and use it to show a SnackBar.
Scaffold.of(context).showSnackBar(snackBar);
【讨论】:
【参考方案2】:这是使用GlobalKey
显示SnackBar
的一种方式。
首先我们需要定义一个 GlobalKey 变量 => final GlobalKey _scaffoldKey
然后将其作为 Scaffold 中的 key => key: _scaffoldKey
之后,您可以通过自己的方法使用它 => _scaffoldKey.currentState.showSnackBar
完整代码:
import 'package:flutter/material.dart';
class YourClass extends StatefulWidget
const YourClass(Key key) : super(key: key);
@override
_YourClassState createState() => _YourClassState();
class _YourClassState extends State<YourClass>
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
void showSnackBar(String text)
_scaffoldKey.currentState.showSnackBar(SnackBar(content: Text(text)));
@override
Widget build(BuildContext context)
return Scaffold(
key: _scaffoldKey,
body: RaisedButton(
onPressed: ()
showSnackBar("Your Custom Message");
,
child: Text("Show Snackbar")),
);
【讨论】:
以上是关于如何在颤动中显示 SnackBar?的主要内容,如果未能解决你的问题,请参考以下文章