Flutter 如何更改对话框颤振的位置
我创建了一个对话框,当注册新用户时,该对话框显示Firestore中是否存在号码。不过,默认情况下,Android似乎将对话框放在显示屏的中央。有没有一种方法可以定位对话框,比如说在调用它的小部件的位置,在我的例子中,它是凸起的按钮回调。 还想知道如何在按钮上方的弹出窗口中显示验证消息 下面是我的代码示例Flutter 如何更改对话框颤振的位置,flutter,flutter-layout,Flutter,Flutter Layout,我创建了一个对话框,当注册新用户时,该对话框显示Firestore中是否存在号码。不过,默认情况下,Android似乎将对话框放在显示屏的中央。有没有一种方法可以定位对话框,比如说在调用它的小部件的位置,在我的例子中,它是凸起的按钮回调。 还想知道如何在按钮上方的弹出窗口中显示验证消息 下面是我的代码示例 numberExistsDialog(BuildContext context) { var numberDialog = AlertDialog( shape: RoundedRec
numberExistsDialog(BuildContext context) {
var numberDialog = AlertDialog(
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10.0)),
title: Text(
'Number Already Exists',
style: TextStyle(color: Colors.red),
textAlign: TextAlign.center,
),
content: Text(
'Use another number',
textAlign: TextAlign.center,
),
);
showDialog(
context: context,
builder: (BuildContext context) {
return numberDialog;
});
}我不知道是否可以用现有的AlertDialog完成,但我曾经通过创建自定义对话框来更改对话框的对齐方式 您可以使用
Align
小部件,并根据需要对齐对话框小部件。
在本例中,我将其设置为bottomCenter
,即对齐(0,1)
示例代码:
对齐(
对齐:对齐(0,1),
儿童:材料(
形状:
RoundedRectangleBorder(borderRadius:borderRadius.circular(10.0)),
孩子:填充(
填充:常数边集全部(32.0),
子:列(
mainAxisSize:mainAxisSize.min,
儿童:[
正文(
“编号已存在”,
样式:TextStyle(颜色:Colors.red),
textAlign:textAlign.center,
),
正文(
“使用另一个数字”,
textAlign:textAlign.center,
),
],
),
),
),
);
PS:您可以根据需要设置文本样式
AlertDialog
的标题
和内容
文本样式默认设置为
飞机本身就在摇晃
编辑:
您可以按如下方式使用它:
numberExistsDialog(构建上下文){
变量numberDialog=Align(
对齐:对齐(0,1),
儿童:材料(
形状:
RoundedRectangleBorder(borderRadius:borderRadius.circular(10.0)),
孩子:填充(
填充:常数边集全部(32.0),
子:列(
mainAxisSize:mainAxisSize.min,
儿童:[
正文(
“编号已存在”,
样式:TextStyle(颜色:Colors.red),
textAlign:textAlign.center,
),
正文(
“使用另一个数字”,
textAlign:textAlign.center,
),
],
),
),
),
);
显示对话框(
上下文:上下文,
生成器:(BuildContext上下文){
返回编号对话框;
},
);
}
您必须自己定制它,这是一个示例代码。或者直接使用软件包。这里有一个很酷的例子:
屏幕截图:
使用
showGeneralDialog
,该对话框随颤振一起提供
脚手架(
浮动操作按钮:浮动操作按钮(
子:图标(Icons.add),
已按下:(){
显示通用对话框(
上下文:上下文,
barrierColor:Colors.black54,
是的,
barrierLabel:“标签”,
页面生成器:(\uuuuuuuuuuuuuuuuuuuuuuuuuu){
返回对齐(
对齐:对齐。左下角,
子:容器(
颜色:颜色,蓝色,
儿童:标志(尺寸:150),
),
);
},
);
},
),
)