1

问题 :

  • 我正在尝试在 a 中缩放小部件,Stack但这似乎不起作用。

  • 解决方案是添加constrained: falseInteractiveViewer.

  • 但是随后,它会抛出错误,说“小部件具有无限大小”,这要归功于constrained: false. 因为它消除了所有约束InteractiveViewer

  • 我也尝试过包装Stack,每个都canvasElementContainerorSizedBox.shrink但两者似乎都不起作用。

目标 :

  • 目标是能够在一个Stack

这是我的代码:

  • 注意:我已删除GestureDetector,否则代码将太长而无法阅读
class _EditorState extends State<Editor> {
  List<Widget> _canvasElements = [];
  List<Offset> _canvasElementOffsets = [];

  @override
  void initState() {
    super.initState();
    _canvasElements.add(Text('Scale me'));
    _canvasElementOffsets.add(Offset(150, 250));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: List.generate(
          _canvasElements.length,
          (index) => Positioned(
            left: _canvasElementOffsets[index].dx,
            top: _canvasElementOffsets[index].dy,
            child: InteractiveViewer(
              minScale: 0.5,
              maxScale: 5,
              constrained: false,
              child: _canvasElements[index],
            ),
          ),
        ),
      ),
    );
  }
}

小部件正在移动但不缩放:

颤振编辑器

4

0 回答 0