flutter - 孩子无法对手势做出反应
问题描述
我在 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);
}
}
如果我使用这个自定义位置并为其提供一个孩子,它将居中,但问题是如果该孩子包含某种手势识别,那么它不会对手势做出反应。请帮我解决我所缺少的。
解决方案
当您使用在另一个文件(如 main.dart)中创建的小部件时,只需使用 GestureRecognizer() 将其包装起来,然后将 on tap 设置为您想要的任何内容
推荐阅读
- javascript - 如何从 jQuery AutoComplete 中的选定值中获取额外的 DB 值?
- python-3.x - 无法从“子进程”导入名称“Popen”
- python - ValueError:字段“id”需要一个数字,但得到“Die erste Meldung”。通过控制台添加项目后
- javascript - 如何使我的幻灯片按钮工作?
- r - 如何使用 scale_shape_manual 为每个条件制作 geom_point 特定形状?
- javascript - 使用 JavaScript 修改带有拆分的数组
- azure-devops - 从单个 DevOps API 查询中提取完整的工作项信息
- c# - .NET MVC Core 3.1 本地化 UrlHelper 不采用当前文化
- sql - 根据另一列的条件值添加不同的列值
- excel - 隐藏任何大于 1 的值