Flutter for web - RaisedButton 周围的 GestureDetector
Posted
技术标签:
【中文标题】Flutter for web - RaisedButton 周围的 GestureDetector【英文标题】:Flutter for web - GestureDetector around RaisedButton 【发布时间】:2020-06-05 16:22:37 【问题描述】:上下文:https://dartpad.dev/c9689b40a5402e12538c726b5c0380ff
我有一个GestureDetector
(具有一些特定的业务逻辑),它监听单击并有一个child
作为参数。
在特定位置,我希望这个child
小部件看起来像一个按钮。但是,使用真正的按钮小部件显然会跳过 GestureDetector 的onTap
。
起初我以为onTapCancel
会启动,但要让onTapCancel
触发小部件需要“长按”。
关于如何解决这个问题的任何建议? (在孩子周围使用IgnorePointer
是行不通的。)
【问题讨论】:
所以你想看看波纹/飞溅效果? 不仅如此。我想要一个按钮的行为,而不需要该按钮上的onPressed
。我希望 onPressed 由父母触发。您可以在问题顶部的交互式示例中看到这一点。
在您的 GestureDetector 中,您有 onTap 功能,您可以在其中执行您的功能。所以像按钮一样显示,你需要有 Card() 或 Container() 并相应地设计。如果按下则设置一个标志并检查条件,然后显示或更改该手势检测器的行为
【参考方案1】:
AbsorbPointer
Widget build(BuildContext context)
return GestureDetector(
child: AbsorbPointer(child : child),
onTap: ()
print('tap');
onTap();
,
onTapCancel: ()
print('tapCancel');
);
【讨论】:
以上是关于Flutter for web - RaisedButton 周围的 GestureDetector的主要内容,如果未能解决你的问题,请参考以下文章
有啥方法可以在 Flutter for Web 中添加谷歌地图?
无法运行 Dart 2 with / Angular for web 以及 Flutter for mobile 项目 - 计划共享代码