簡體   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