可以(应该?)堆栈将其大小扩展到定位的孩子?

时间:2018-05-03 13:06:07

标签: flutter

我有一个Stack小部件,其中包含两个Image小部件,一个图像覆盖另一个。一个图像的顶部设置为10,因此它在屏幕上高出10个像素。不幸的是10.0px在屏幕底部被截断了。如果我设置了overflow.visible,那么我就能看到它。

我用GestureDetector包装堆栈10.0px溢出不在GestureDetector内,所以当用户点击图像的底部时,没有任何反应。图像尺寸不同,所以我无法设定一定的高度。

有没有办法将GestureDector的大小增加到其子级的大小?

return new GestureDetector(
  onTapDown: (x) => print('onTapDown'),
  child: new Stack(
    overflow: Overflow.visible,
    children: [
      new Positioned(
        child: shadowImage,
        top: 10.0,
      ),
      new Positioned(
        child: initialImage,
      ),
    ],
  ),
);

1 个答案:

答案 0 :(得分:4)

  

可以(应该?)堆栈将其大小扩展到其定位的子项吗?

没有。但是如果你想要以下内容,那么你的孩子应该定位。 Stack,如果有的话,将围绕第一个未定位的孩子进行调整。

因此,您可以将shadowImage转换为

children: [
  new Padding(
    padding: const EdgeInsets.only(top: 10.0),
    child: shadowImage
  ),
  new Positioned(
    child: initialImage,
  ),
],