flutter - 如何在颤动中向警报对话框添加选项卡
问题描述
我有一个名为 dialogs.dart 的独立类,其中包含一个可重用的警报对话框。我希望这个警报对话框有标签,但如果可能的话,我不知道如何实现它。任何想法都受到高度赞赏。这是我的 dialogs.dart 代码
import 'package:flutter/material.dart';
enum DialogAction{yes,abort}
class Dialogs{
static int selectedRadio;
static void setSelectedRadio(int val){
selectedRadio=val;
}
static Future<DialogAction> yesAbortDialog(
BuildContext context,
String title,
String body,
)async{
final action= await showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context){
return AlertDialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
title: Text(title),
content: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return Column(
mainAxisSize: MainAxisSize.min,
children: List<Widget>.generate(3, (int index) {
return Radio<int>(
value: index,
groupValue: selectedRadio,
onChanged: (int value) {
setState(() => selectedRadio = value);
},
);
}),
);
},
),
actions: <Widget>[
FlatButton(
onPressed: ()=>Navigator.of(context).pop(DialogAction.abort),
child: const Text('cancel'),
),
RaisedButton(
onPressed: ()=>Navigator.of(context).pop(DialogAction.yes),
child: const Text('Proceed', style: TextStyle(color: Colors.white),),
color: Colors.green,
),
],
);
}
);
return(action!=null)?action: DialogAction.abort;
}
}
解决方案
不要为此目的使用“AlertDialog”。使用“对话”类。在其中,您可以按照自己喜欢的方式配置自己的孩子。将选项卡和事件绑定到它。请参考 - https://api.flutter.dev/flutter/material/Dialog-class.html 您可以使用带有边距的“容器”来获得屏障效果。
推荐阅读
- c - 在c程序中静态分配内存地址
- python - 如何使先验算法更快?
- ios - 尝试将 Flutter 应用程序上传到 ItunesConnect 时出现 UIWebView 错误
- javascript - Javascript - Date.now() 不一样
- reactjs - 在 formik 上显示 API 错误,如是的消息错误
- javascript - 每 7 个 while 循环计数一次总和
- python - 如何在 Python 中为 socket .send() 添加最大时间?
- java - 通用链表删除、大小、获取方法
- java - 快速创建 Java 类对象
- python - 找不到标签时,Beautiful Soup find_all 错误