[英]How to display iOS/cupertino alert dialog in Android using Flutter?
我试图在我的 Flutter 应用程序中显示一个 iOS 主题的对话框,但我在文档中找不到任何内容
The keyword for Android theme/style is Material (default design), the keyword for iOS theme/style is Cupertino . Android 主题/样式的关键字是Material (默认设计),iOS 主题/样式的关键字是Cupertino 。 Every iOS theme widget has the prefix Cupertino .
每个 iOS 主题小部件都有前缀Cupertino 。 So that, for you requirement, we can guess the keyword is CupertinoDialog / CupertinoAlertDialog
这样,根据您的要求,我们可以猜测关键字是CupertinoDialog / CupertinoAlertDialog
You can refer here for all of them https://flutter.io/docs/reference/widgets/cupertino您可以在此处参考所有这些https://flutter.io/docs/reference/widgets/cupertino
new CupertinoAlertDialog(
title: new Text("Dialog Title"),
content: new Text("This is my content"),
actions: <Widget>[
CupertinoDialogAction(
isDefaultAction: true,
child: Text("Yes"),
),
CupertinoDialogAction(
child: Text("No"),
)
],
)
Future<bool> showAlertDialog({
@required BuildContext context,
@required String title,
@required String content,
String cancelActionText,
@required String defaultActionText,
}) async {
if (!Platform.isIOS) {
return showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text(title),
content: Text(content),
actions: <Widget>[
if (cancelActionText != null)
FlatButton(
child: Text(cancelActionText),
onPressed: () => Navigator.of(context).pop(false),
),
FlatButton(
child: Text(defaultActionText),
onPressed: () => Navigator.of(context).pop(true),
),
],
),
);
}
// todo : showDialog for ios
return showCupertinoDialog(
context: context,
builder: (context) => CupertinoAlertDialog(
title: Text(title),
content: Text(content),
actions: <Widget>[
if (cancelActionText != null)
CupertinoDialogAction(
child: Text(cancelActionText),
onPressed: () => Navigator.of(context).pop(false),
),
CupertinoDialogAction(
child: Text(defaultActionText),
onPressed: () => Navigator.of(context).pop(true),
),
],
),
);
}
I used CupertinoAlertDialog inside the ShowDialog , you can find the same below我在ShowDialog 中使用了CupertinoAlertDialog ,您可以在下面找到相同的内容
showDialog(
context: context,
builder: (BuildContext context) => CupertinoAlertDialog(
title: new Text("Dialog Title"),
content: new Text("This is my content"),
actions: <Widget>[
CupertinoDialogAction(
isDefaultAction: true,
child: Text(StringConstants.BIOMETRICAUTHORIZED),
),
CupertinoDialogAction(
child: Text("No"),
)
],
)
);
The following is a simple example of how to create a simple alert with two button in Flutter,以下是如何在 Flutter 中创建带有两个按钮的简单警报的简单示例,
import a import 'package:flutter/cupertino.dart';
导入
import 'package:flutter/cupertino.dart';
and Copy and paste below code and Call it showAlertDialog(context);
并复制并粘贴下面的代码并称之为
showAlertDialog(context);
where you want to show Dialog.你想在哪里显示对话框。
void showAlertDialog(BuildContext context) {
showDialog(
context: context,
child: CupertinoAlertDialog(
title: Text("Log out?"),
content: Text( "Are you sure you want to log out?"),
actions: <Widget>[
CupertinoDialogAction(
isDefaultAction: true,
onPressed: (){
Navigator.pop(context);
},
child: Text("Cancel")
),
CupertinoDialogAction(
textStyle: TextStyle(color: Colors.red),
isDefaultAction: true,
onPressed: () async {
Navigator.pop(context);
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.remove('isLogin');
Navigator.pushReplacement(context,
MaterialPageRoute(builder: (BuildContext ctx) => LoginScreen()));
},
child: Text("Log out")
),
],
));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.