【发布时间】:2020-10-10 13:46:49
【问题描述】:
我在 Flutter Europe 频道上看过一段视频,他们解释了我们如何创建自己的小部件,他们教你如何构建自己的中心,我已经创建了相同的并且工作正常,但问题是下面的小部件无法识别任何手势。
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
class CustomPosition extends SingleChildRenderObjectWidget {
final Key key;
final Widget child;
CustomPosition({this.key, this.child});
@override
RenderObject createRenderObject(BuildContext context) {
print("render created");
return _RenderCustomPosition();
}
}
class _RenderCustomPosition extends RenderBox
with RenderObjectWithChildMixin<RenderBox> {
@override
void performLayout() {
if (child != null) {
size = constraints.biggest;
child.layout(constraints.loosen(), parentUsesSize: true);
double dx = (constraints.maxWidth - child.size.width) / 2;
double dy = (constraints.minHeight - child.size.height) / 2;
BoxParentData childParentData = child.parentData;
childParentData.offset = Offset(dx, dy);
} else {
size = Size(0, 0);
}
//super.performLayout();
}
@override
void paint(PaintingContext context, Offset offset) {
if (child != null) {
var parentData = child.parentData as BoxParentData;
context.paintChild(child, offset + parentData.offset);
}
//super.paint(context, offset);
}
}
如果我使用这个自定义位置并为其提供一个孩子,它将居中,但问题是如果该孩子包含某种手势识别,那么它不会对手势做出反应。请帮我解决我所缺少的。
【问题讨论】:
标签: flutter dart flutter-layout flutter-test