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

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


当前回答

你可以使用FlutterToast之类的软件。

导入库:

fluttertoast: ^2.1.4

像下面这样使用它:

Fluttertoast.showToast(
    msg: "Hello, World!",
    textColor: Colors.white,
    toastLength: Toast.LENGTH_SHORT,
    timeInSecForIos: 1,
    gravity: ToastGravity.BOTTOM,
    backgroundColor: Colors.indigo,
);

就是这样……

其他回答

在Flutter应用程序中有一个三种方式来显示吐司。

我会告诉你我所知道的三种方法,并选择你想要使用的一种。我推荐第二种。

1:使用外挂包。

这是第一个方法,这是最简单的方法显示吐司在Flutter应用程序。

首先,您必须将这个包添加到文件pubspec中。YAML:

flutter_just_toast:^version_here

然后在您想要显示toast的文件中导入该包。

'package:flutter_just_toast/flutter_just_toast.dart';

最后一步是祝酒词。

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

2:使用官方的方式。

这种方法也很简单,但你必须处理它。我并不是说它很难,而是简单干净,我会推荐这种方法。

对于这个方法,你所要做的就是使用下面的代码。

Scaffold.of(context).showSnackBar(SnackBar(
          content: Text("Sending Message"),
        ));

但是请记住,您必须使用脚手架上下文。

3:使用本地API。

现在,当你已经有了上面的两个方法时,这个方法就没有意义了。使用这种方法,你必须为Android和iOS编写本地代码,然后将其转换为插件,你就可以开始了。

这种方法会消耗你的时间,你必须重新发明轮子。这已经被发明出来了。

用这个:

Fluttertoast.showToast(
    msg: "This is a Toast message",
    toastLength: Toast.LENGTH_SHORT,
    gravity: ToastGravity.CENTER,
    timeInSecForIos: 1
);

在这里买颤振吐司包

将这个包添加到文件pubspec.yaml中的项目依赖项中。

然后当你想要吐司显示时,就像点击一个按钮:

Toast.show("Toast plugin app", context, duration: Toast.LENGTH_SHORT, gravity: Toast.BOTTOM);

更新:Scaffold.of(上下文)。showSnackBar在Flutter 2.0.0中已弃用(稳定)

你可以使用ScaffoldMessenger.of(context)访问父类ScaffoldMessengerState。

然后做一些类似的事情

ScaffoldMessenger.of(context).showSnackBar(SnackBar(
      content: Text("Sending Message"),
    ));

零食条是材料设计的官方“吐司”。看到间小吃店。

下面是一个完整的例子:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Home(),
    );
  }
}

class Home extends StatelessWidget {
  const Home({
    Key key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Snack bar'),
      ),
      body: Center(
        child: RaisedButton(
          onPressed: () => _showToast(context),
          child: const Text('Show toast'),
        ),
      ),
    );
  }

  void _showToast(BuildContext context) {
    final scaffold = ScaffoldMessenger.of(context);
    scaffold.showSnackBar(
      SnackBar(
        content: const Text('Added to favorite'),
        action: SnackBarAction(label: 'UNDO', onPressed: scaffold.hideCurrentSnackBar),
      ),
    );
  }
}

这很简单:

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

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

在此之后,只需导入包:

import 'package:fluttertoast/fluttertoast.dart';

类似于上面的一行。

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

你做完了! !