我可以在Flutter中创建类似Toasts的东西吗?
只是一个很小的通知窗口,不直接面对用户,也不锁定或淡出它后面的视图。
我可以在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,
);
就是这样……
其他回答
对于Android原始图形吐司,你可以使用这个:
它在Android和iOS上运行良好。
你可以用这个包装:吐司
将这一行添加到依赖项中
toast: ^0.1.5
然后这样使用它:
import 'package:toast/toast.dart';
Toast.show("Toast plugin app", context, duration: Toast.LENGTH_SHORT, gravity: Toast.BOTTOM);
如果目前给出的Fluttertoast包不奏效,那么我建议你试试吐司。
它没有装饰,也没有仪式。
它就是有用。 我注意到在它的README文件中给出的例子中有一个错误: Toast.show ( “吐司插件应用程序”, 持续时间:烤面包。LENGTH_SHORT, 重力:Toast.BOTTOM); 而该方法需要一个上下文。所以要像这样添加“上下文”: Toast.show ( "Toast插件应用" 持续时间:烤面包。LENGTH_SHORT, 重力:Toast.BOTTOM); 有一个机会,这将在你检查的时候被修复。我已经提交了PR。
这很简单:
我们只需要安装颤动吐司包。 请参考以下文档: https://pub.dev/packages/fluttertoast
在安装选项卡,你会得到依赖,你必须把它粘贴到pubspec。Yaml文件然后安装。
在此之后,只需导入包:
import 'package:fluttertoast/fluttertoast.dart';
类似于上面的一行。
然后通过使用FlutterToast类你可以使用你的FlutterToast。
你做完了! !
你可以很容易地实现这种效果使用叠加。
代码:
OverlayEntry entry = OverlayEntry(builder: (context) {
return Positioned(
top: MediaQuery.of(context).size.height * 0.8,
child: Container(
width: MediaQuery.of(context).size.width,
alignment: Alignment.center,
child: const Card(
color: Colors.redAccent,
child: Padding(
padding: EdgeInsets.all(8),
child: Text("This is a message."),
),
),
));
});
//show overlay
Overlay.of(context)!.insert(entry);
//auto remove this overlay after 3 seconds
Future.delayed(const Duration(seconds: 3)).then((value) => entry.remove());
截图: