GestureDedector 的 onTap 事件不适用于 Sizedbox
Posted
技术标签:
【中文标题】GestureDedector 的 onTap 事件不适用于 Sizedbox【英文标题】:GestureDedector's onTap event not working for Sizedbox 【发布时间】:2021-11-03 14:17:20 【问题描述】:我遇到了 GestureDedector 的 onTap 事件问题。 我也试过卡,但不工作。当我点击 sizedbox 时没有任何反应。
GestureDetector(
onTap: () => GoToPage(),
child: SizedBox(
child: Card(
child: Center(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: <Widget>[
Image.asset(
"assets/png/icon2.png",
width: 64.0,
),
...
谢谢。
【问题讨论】:
@Nagual sizedbox 有效,*** 在提问时要求我缩短它。 SizedBox 属性:宽度:146.0,高度:170.0, 你在哪里测试它,网络或电话设备。在网络上,它工作正常。 在移动设备上无法正常工作。甚至 GestureDedector 的属性我都试过了 【参考方案1】:默认情况下,带有不可见子项的 GestureDetector 会忽略触摸,此行为可以通过行为来控制。 https://flutter.dev/docs/development/ui/advanced/gestures
【讨论】:
【参考方案2】:您需要指定 GestureDetector 行为
GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: (),
),
【讨论】:
【参考方案3】:尝试添加GestureDetector的行为属性
GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: (),
),
【讨论】:
以上是关于GestureDedector 的 onTap 事件不适用于 Sizedbox的主要内容,如果未能解决你的问题,请参考以下文章
添加 if 语句后,颤振 onTap 错误 onTap 停止工作