[英]flutter: onTap Button listenable not work on position in stack
我试图创建一个自定义对话框。 在对话框中关闭按钮位于容器上方:
现在,当用户点击此关闭图标时,我正在尝试关闭对话框:
Widget build(BuildContext context) {
return Dialog(
insetPadding: EdgeInsets.symmetric(vertical: 0.0, horizontal: 30.0),
child: Container(
width: 300,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Stack(
overflow: Overflow.visible,
children: [
Visibility(
visible: true,
child: Positioned(
top: -15,
left: 0,
child: GestureDetector(
onTap: () {
print("Clicked");
},
child: CircleWidget()),
),
),
SingleChildScrollView(
child: Column(
但是onTap没有触发! 我认为它在某些小部件下放置!!!
如果 GestureDetector 是Positioned
on widget shape 的父级,则变得混乱。像这样:
虽然onTap不能像上面那样工作。你的想法是什么?
尝试 InkWell instend 的 GestureDetector
child: InkWell(onTap: () {
print("Clicked");
},
child: CircleWidget()),
正如我之前猜测的那样,一个小部件覆盖了GestureDetector所以我更改了此代码的 position:
Visibility(
visible: widget.showCloseButton(),
child: Positioned(
top: -15,
left: 0,
和:
SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
现在 GestureDetector 就像一个魅力:-)
完整代码:
Widget build(BuildContext context) {
return Dialog(
insetPadding: EdgeInsets.symmetric(vertical: 0.0, horizontal: 30.0),
child: Container(
width: 300,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Stack(
overflow: Overflow.visible,
children: [
SingleChildScrollView(
child: Column(.....
Visibility(
visible: true,
child: Positioned(
top: -15,
left: 0,
child: GestureDetector(
onTap: () {
print("Clicked");
},
child: CircleWidget()),
),
),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.