我可以在Flutter中创建类似Toasts的东西吗?
只是一个很小的通知窗口,不直接面对用户,也不锁定或淡出它后面的视图。
我可以在Flutter中创建类似Toasts的东西吗?
只是一个很小的通知窗口,不直接面对用户,也不锁定或淡出它后面的视图。
当前回答
步骤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);
其他回答
你可以很容易地实现这种效果使用叠加。
代码:
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());
截图:
您可以使用此链接在Flutter中显示Toast。
可以这样使用:
void method1(){
Fluttertoast.showToast(
msg: "This is Add Button",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIosWeb: 1,
backgroundColor: Colors.blueGrey,
textColor: Colors.white,
fontSize: 14.0
);
}
小吃店
当我尝试使用脚手架状态对象(由其他人建议)的解决方案时,我得到了一个警告,它已弃用:
'showSnackBar'已弃用,不应该使用。使用ScaffoldMessenger.showSnackBar。此特性在v1.23.0-14.0.pre..之后已弃用。
使用ScaffoldMessenger可以正常工作:
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(content: Text("My amazing message! O.o")));
例子:
使用这个依赖:
toast: ^0.1.3
然后在页面中导入toast的依赖关系:
import 'package:toast/toast.dart';
然后在小部件的onTap()上:
Toast.show("Toast plugin app", context, duration:Toast.LENGTH_SHORT, gravity: Toast.BOTTOM);
使用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
);