我通过paintChild偏移量移动了子小部件,但子项上的click事件仍在原始位置

时间:2018-07-26 02:19:35

标签: flutter

绘画代码:

void Paint(PaintingContext context, Offset offset) {
    context.paintChild(child, offset + _offset);
}

,然后是子级上的click事件:

Container(
    width: _buttonWidth,
    child: RaisedButton(
    onPressed: () {
      onButtonPressed();
    },
    color: buttonColor,
    child: Text(
      "button",
      style: TextStyle(color: Colors.white, fontSize: 16.0),
    )),
)

我想要的是click事件可以跟随移动的孩子。那么,谁能帮助我解决这个问题?

1 个答案:

答案 0 :(得分:0)

在创建自己的窗口小部件并自定义窗口小部件的儿童绘画时,您可能还必须覆盖hitTestChildren

如果您要创建自己的RenderBox,则hitTestChildren可能看起来像这样:

@override
bool hitTestChildren(HitTestResult result, { Offset position }) {
  if (child != null) {
    return child.hitTest(result, position: position - _offset);
  }
  return false;
}