我对 flutter 和 dart 很陌生。 我正在尝试使用 GraphView 库绘制树视图。我能够生成树,而且平移效果很好。 主要问题是树节点必须是可点击的,但是一旦树扩展到超过主窗口大小,“外部”节点就不再可点击了。
为了更好地解释这是树。向右平移后,绿线是 initState 视图的右边距。这条线左边的所有节点都是可触摸的,而右边的节点都是不可触摸的。
我为显示此视图而生成的代码如下:
Widget build(BuildContext context) {
return InteractiveViewer(
clipBehavior: Clip.none,
panEnabled: true,
minScale: 0.35,
maxScale: 1,
boundaryMargin: EdgeInsets.all(double.infinity),
child: OverflowBox(
alignment: Alignment.center,
minWidth: 0.0,
minHeight: 0.0,
maxWidth: double.infinity,
maxHeight: double.infinity,
child: GraphView(
algorithm: BuchheimWalkerAlgorithm(
builder,
TreeEdgeRenderer(builder),
),
graph: graph,
paint: Paint()
..color = Colors.green
..strokeWidth = 1
..style = PaintingStyle.stroke,
builder: (Node node) {
int a = node.key!.value;
if (a == 0) {
return rectangleWidget("ROOT", a, NodeType.ROOT, 99);
} else {
AttackTreeNode attackTreeNode =
dataManager.rootNode.findNode(a);
return rectangleWidget(
attackTreeNode.name, a, attackTreeNode.nodeType, attackTreeNode.score);
}
}),
),
);
}
感谢您的帮助!