我有几个图像按钮,如下所示:
布局代码是:
new Container(
height: 48.0,
child: new Row(
children: <Widget>[
new GestureDetector(
onTap: cancelTurn,
child: new Align(child: new Image.asset("assets/cancel_button.png"), widthFactor: 1.5),
),
new Expanded(child: new Container()),
new GestureDetector(
onTap: confirmTurn,
child: new Align(child: new Image.asset("assets/confirm_button.png"), widthFactor: 1.5),
),
],
),
)
我正在使用Align
小部件来增加GestureDetector
的可点击区域。但是,只有在Image
窗口小部件内部单击时,我的点击才有效。如果您注意到,Align
和Image
的界限/范围是不同的。使用Align
属性(设置为Image
)将widthFactor
扩展到1.5
个孩子之后
有关Align
窗口小部件可能无法检测其边界中的点按手势的任何想法。
答案 0 :(得分:1)
尝试将hitTestBehavior
HitTestBehavior.opaque
传递给GestureDetector
。
其他提示:
Align
,请考虑Padding
。IconButton
与Icons.close
和Icons.check
一起使用,而不是嵌入自定义png。您可以将其包裹在Material
中以绘制黑色圆圈,它甚至会自动为您剪辑墨水。答案 1 :(得分:0)
要获得所需效果,您可以替换GestureDetector
的{{1}}元素。这将向用户提供反馈(由于墨水动画),并在按下整个区域时激活。
为此,您的容器应如下所示:
InkWell