Flutter 如何更改对话框颤振的位置

Flutter 如何更改对话框颤振的位置,flutter,flutter-layout,Flutter,Flutter Layout,我创建了一个对话框,当注册新用户时,该对话框显示Firestore中是否存在号码。不过,默认情况下,Android似乎将对话框放在显示屏的中央。有没有一种方法可以定位对话框,比如说在调用它的小部件的位置,在我的例子中,它是凸起的按钮回调。 还想知道如何在按钮上方的弹出窗口中显示验证消息 下面是我的代码示例 numberExistsDialog(BuildContext context) { var numberDialog = AlertDialog( shape: RoundedRec

我创建了一个对话框,当注册新用户时,该对话框显示Firestore中是否存在号码。不过,默认情况下,Android似乎将对话框放在显示屏的中央。有没有一种方法可以定位对话框,比如说在调用它的小部件的位置,在我的例子中,它是凸起的按钮回调。 还想知道如何在按钮上方的弹出窗口中显示验证消息

下面是我的代码示例

  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),
),
);
},
);
},
),
)