我可以在Flutter中创建类似Toasts的东西吗?
只是一个很小的通知窗口,不直接面对用户,也不锁定或淡出它后面的视图。
我可以在Flutter中创建类似Toasts的东西吗?
只是一个很小的通知窗口,不直接面对用户,也不锁定或淡出它后面的视图。
当前回答
小吃店
当我尝试使用脚手架状态对象(由其他人建议)的解决方案时,我得到了一个警告,它已弃用:
'showSnackBar'已弃用,不应该使用。使用ScaffoldMessenger.showSnackBar。此特性在v1.23.0-14.0.pre..之后已弃用。
使用ScaffoldMessenger可以正常工作:
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(content: Text("My amazing message! O.o")));
例子:
其他回答
你可以直接使用小吃店的元素
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
},
),
),
);
使用这个依赖:
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.showToast(
msg: "This is a Toast message",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIos: 1
);
您可以使用此链接在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
);
}
您可以使用飘动吐司包装。为此,将其添加到pubspec中。Yaml文件如下:
dependencies:
fluttertoast: ^8.0.8
然后在需要吐司的.dart文件中导入这个包并编写代码。
例如,参考以下代码:
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
class ToastExample extends StatefulWidget {
@override
_ToastExampleState createState() {
return _ToastExampleState();
}
}
class _ToastExampleState extends State {
void showToast() {
Fluttertoast.showToast(
msg: 'This is flutterToast example', // Message
toastLength: Toast.LENGTH_SHORT, // toast length
gravity: ToastGravity.CENTER, // position
timeInSecForIos: 1, // duaration
backgroundColor: Colors.red, // background color
textColor: Colors.white // text color
);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Toast Tutorial',
home: Scaffold(
appBar: AppBar(
title: Text('Toast Tutorial'),
),
body: Padding(
padding: EdgeInsets.all(15.0),
child: Center(
child: RaisedButton(
child: Text('Show Toast'),
onPressed: showToast,
),
),
)
),
);
}
}
void main() => runApp(ToastExample());