我可以在Flutter中创建类似Toasts的东西吗?

只是一个很小的通知窗口,不直接面对用户,也不锁定或淡出它后面的视图。


当前回答

答案Scaffold.of(context). showsnackbar(…)在大多数情况下都不起作用。

我建议最佳的方法是在类中声明一个Scaffold state键,并将其分配给Scaffold,如下所示:

GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();

然后

Scaffold(
  key: _scaffoldKey,
  ...
)

当你想要显示零食栏时,这样做:

_scaffoldKey.currentState.showSnackBar(SnackBar(
  content: Text("This works!"),
));

其他回答

步骤1:

依赖关系:

flutter_just_toast: ^1.0.1

步骤2:

import 'package:flutter_just_toast/flutter_just_toast.dart';

步骤3:

Toast.show(
  message: "Your toast message",
  duration: Delay.SHORT,
  textColor: Colors.black);

这很简单:

我们只需要安装颤动吐司包。 请参考以下文档: https://pub.dev/packages/fluttertoast

在安装选项卡,你会得到依赖,你必须把它粘贴到pubspec。Yaml文件然后安装。

在此之后,只需导入包:

import 'package:fluttertoast/fluttertoast.dart';

类似于上面的一行。

然后通过使用FlutterToast类你可以使用你的FlutterToast。

你做完了! !

使用fluttertoast插件

将这一行添加到依赖项中

fluttertoast: ^8.1.1

然后你可以使用Toast无构建上下文(功能有限,无法控制UI,请检查文档)

Fluttertoast.showToast(
        msg: "This is a Toast message",
        toastLength: Toast.LENGTH_SHORT,
        gravity: ToastGravity.CENTER,
        timeInSecForIosWeb: 1,
        textColor: Colors.white,
        fontSize: 16.0
    );

将flutter_just_toast添加到Pubspecs中的依赖项中。yaml文件。

依赖关系:

flutter_just_toast: ^1.0.1

接下来将包导入到你的类中:

import 'package:flutter_just_toast/flutter_just_toast.dart';

用一条消息实现Toast:

Toast.show(message: "Your toast message",
    duration: Delay.SHORT,
    textColor: Colors.black);

你可以直接使用小吃店的元素

 ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(
        content: Text("Successfully!"),
        behavior: SnackBarBehavior.floating,
        margin: EdgeInsets.all(20),
          shape: StadiumBorder(),
        action: SnackBarAction(
          label: 'Dismiss',
          disabledTextColor: Colors.white,
          textColor: Colors.blue,
          onPressed: () {
            //Do whatever you want
          },
        ),
      ),
    );