概述

#

DialogSimpleDialogAlertDialogshowTimePicker 的实例现在默认形状为 RoundedRectangleBorder,圆角半径为 4.0 像素。这符合 Material Design 的当前规范。在此更改之前,Dialog.shapeBorderRadius 的默认行为是 2.0 像素。

背景

#

Dialog 及其相关子类(SimpleDialogAlertDialogshowTimePicker)的外观略有不同,因为圆角半径更大。如果您拥有包含先前渲染的、圆角半径为 2.0 像素的 Dialog 的主黄金文件图像,您的 widget 测试将失败。这些黄金文件图像可以更新以反映新的渲染,或者您可以更新您的代码以保持原始行为。

showDatePicker 对话框已符合此规范,不受此更改影响。

迁移指南

#

如果您希望保留旧的形状,可以使用 Dialog 的 shape 属性指定原始的 2 像素半径。

将对话框形状设置为原始半径

dart
import 'package:flutter/material.dart';

void main() => runApp(Foo());

class Foo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        floatingActionButton: FloatingActionButton(onPressed: () {
          showDialog(
            context: context,
            builder: (BuildContext context) {
              return AlertDialog(
                content: Text('Alert!'),
                shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.all(Radius.circular(2))),
              );
            },
          );
        }),
      ),
    );
  }
}

如果您倾向于新的行为但黄金文件测试失败,您可以使用此命令更新您的主黄金文件

flutter test --update-goldens

时间线

#

发布于版本:1.20.0-0.0.pre
稳定版本中:1.20

参考资料

#

API 文档

相关 PR