简体   繁体   English

如何在 flutter 中显示 SnackBar?

[英]how to show SnackBar in flutter?

I want to show SnackBar if not internet connection is available what to do?如果没有可用的互联网连接,我想显示 SnackBar 怎么办? I want to use snackbar in else how to do it?我想在其他地方使用小吃店怎么办?

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

Check this out.看看这个

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

This is one way to show a SnackBar using the GlobalKey .这是使用GlobalKey显示SnackBar的一种方式。

  • First we need to define a GlobalKey variable => final GlobalKey _scaffoldKey首先我们需要定义一个 GlobalKey 变量 => final GlobalKey _scaffoldKey

  • Then use it as key in the Scaffold => key: _scaffoldKey然后将其用作 Scaffold => 键中的键:_scaffoldKey

  • After that, you can use it from your own method => _scaffoldKey.currentState.showSnackBar之后,您可以从自己的方法中使用它 => _scaffoldKey.currentState.showSnackBar

Full code:完整代码:

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