使用带装饰的容器时长按InkResponse不起作用

zer*_*ven 0 dart flutter

使用带装饰的容器时长按InkResponse不起作用

https://github.com/flutter/flutter/issues/13421

return new Container(
      color: Colors.white,
      padding: new EdgeInsets.all(16.0),
      child: new Column(
Run Code Online (Sandbox Code Playgroud)

要么

return new Container(
      decoration: new BoxDecoration(
        color: Colors.white,
      ),
      padding: new EdgeInsets.all(16.0),
      child: new Column(
Run Code Online (Sandbox Code Playgroud)

(两者都相同)

如果我评论颜色,一切都恢复正常.

图像属性也是一样的.

但不边界属性.

我把一个GestureDetector集装箱,看是否检测到手势,有与检测,它就是没有问题的长按动画不能工作.

我也可以证实这一点,而不使用GestureDetector,我能听到的点击音从模拟器做时,长按自来水.

临时解决方法是使用Scaffold

return new Scaffold(
      backgroundColor: Colors.white,
      body: new Container(
        padding: new EdgeInsets.all(16.0),
        child: new Column(
Run Code Online (Sandbox Code Playgroud)

zer*_*ven 6

这就是文档所说的:

InkResponse窗口小部件必须具有"材质"窗口小部件作为祖先."材质"小组件是实际绘制墨水反应的位置.这与材料设计前提相匹配,其中材料实际上是通过涂布墨水而对触摸作出反应的.

所以我在Container中添加了一个Material ancestor.

new Material(
      color: Colors.white,
      child: new Container(
        padding: new EdgeInsets.all(16.0),
        child: new Column(
Run Code Online (Sandbox Code Playgroud)