gpt4 book ai didi

dialog - 是否可以禁用对话框上的阴影/覆盖?

转载 作者:IT王子 更新时间:2023-10-29 06:34:26 27 4
gpt4 key购买 nike

我想知道是否有办法禁用阴影/覆盖影响对话框?基本上这样我就可以得到一个看起来像这张图片右侧的对话框:

我对此的最佳尝试是使用一个包含我的自定义对话框的堆栈,然后将其切换为显示或不显示,但是我无法滚动每个自定义对话框自己的 ListView 而不会弄乱另一个。我知道这违反了 Material Design 指南,但我正在尝试从 dribble.com 复制一个 UI。

谢谢!

编辑:

我已经设法通过编辑 showGeneralDialog 方法几乎实现了这种效果,但仍然存在高度阴影:

await showGeneralDialog(
context: context,
pageBuilder: (BuildContext buildContext,
Animation<double> animation,
Animation<double> secondaryAnimation) {
return SafeArea(
child: Builder(builder: (context) {
return AlertDialog(
content: Container(
color: Colors.white,
width: 150.0,
height: 150.0,
child: Center(child: Text("Testing"))));
}),
);
},
barrierDismissible: true,
barrierLabel: MaterialLocalizations.of(context)
.modalBarrierDismissLabel,
barrierColor: null,
transitionDuration:
const Duration(milliseconds: 150));

编辑 2:仅用一张图片来说明上述代码的变化,表明我到目前为止已经能够禁用深色叠加层,但对话框中仍然存在我似乎无法摆脱的高度:

enter image description here

编辑 3:我认为如果我能够更改 showGeneralDialogBuilder 中的 AlertDialog,那么我可以将其设置为工作,但我无法输入 Material 但不会占据整个屏幕的内容。

最佳答案

开始工作了!您必须在 showGeneralDialog 方法的 Builder 中创建自己的对话框,例如 Widget,同时将 barrierColor 设置为 null:

enter image description here

await showGeneralDialog(
context: context,
pageBuilder: (BuildContext buildContext,
Animation<double> animation,
Animation<double> secondaryAnimation) {
return SafeArea(
child: Builder(builder: (context) {
return Material(
color: Colors.transparent,
child: Align(
alignment: Alignment.center,
child: Container(
height: 200.0,
width: 250.0,
color: Colors.white,
child:
Center(child: Text('Testing')))));
}),
);
},
barrierDismissible: true,
barrierLabel: MaterialLocalizations.of(context)
.modalBarrierDismissLabel,
barrierColor: null,
transitionDuration: const Duration(milliseconds: 150));

关于dialog - 是否可以禁用对话框上的阴影/覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53836876/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com