繁体   English   中英

如何在 flutter 中显示 SnackBar?

[英]how to show SnackBar in flutter?

如果没有可用的互联网连接,我想显示 SnackBar 怎么办? 我想在其他地方使用小吃店怎么办?

 Future<void> checkStatus(ConnectivityResult result) async
  {
    {
      if(result == ConnectivityResult.mobile || result == ConnectivityResult.wifi)
      {
        changeValues("Connected");
      }
      else
      {
         Show SnackBar Here
      }
    }

看看这个

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);

这是使用GlobalKey显示SnackBar的一种方式。

  • 首先我们需要定义一个 GlobalKey 变量 => final GlobalKey _scaffoldKey

  • 然后将其用作 Scaffold => 键中的键:_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")),
    );
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM