await showDialog(
context: context,
barrierColor: Colors.black,
builder: (c) {
return AnimatedContainer(
duration: const Duration(milliseconds: 300),
padding: MediaQuery.paddingOf(context), // 安全区域,尤其是顶部,比如苹果的刘海屏等
child: AlertDialog(title: Text("标题"), content: const ExampleWidget(), scrollable: true),
);
},
barrierDismissible: false, // 禁止点击空白区域而关闭窗口
);
class ExampleWidget extends StatelessWidget {
const ExampleWidget({super.key});
@override
Widget build(BuildContext context) {
return PopScope(
canPop: false, // 禁止回退、滑动回退以及Android的物理键回退
child: SingleChildScrollView(... // 可以添加button实现回退效果:Navigator.of(context).pop();
),
);
}
}
Flutter的弹出框禁止回退
于 2024-08-12 12:26:05 首次发布