对话框的默认边框半径
概述
#`Dialog` 的实例以及 `SimpleDialog`、`AlertDialog` 和 `showTimePicker` 现在都具有 `RoundedRectangleBorder` 的默认形状,其 `BorderRadius` 为 4.0 像素。这与当前的 Material Design 规范相符。在此更改之前,`Dialog.shape` 的 `BorderRadius` 默认行为是 2.0 像素。
背景
#`Dialog` 及其相关子类(`SimpleDialog`、`AlertDialog` 和 `showTimePicker`)的外观略有不同,因为边框半径增大了。如果您拥有带有 `Dialog` 之前 2.0 像素边框半径渲染效果的基准黄金文件图像,您的 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