Flutter Transform将小部件从当前位置转换到另一个位置

时间:2019-09-26 10:11:16

标签: flutter dart flutter-layout

如果我想在Flutter应用中翻译任何Widget,我将使用以下代码。

Transform.translate()

需要翻译功能偏移量(dx,dy)。但是我想找到当前窗口小部件的dx或dy值,因此我可以将窗口小部件从设备上的当前位置向左,向右或上下移动。

2 个答案:

答案 0 :(得分:0)

这就是它的工作原理

如果我愿意

Transform.translate(offset: Offset(-10, 20)

它会将其位置10从其正常渲染位置向左变换,并向下变换20。

答案 1 :(得分:0)

这并非易事。您必须使用渲染对象。您可以先复制粘贴addNetwork(Configurations)WifiManager类。 Transform覆盖了方法RenderTransform,其参数RenderTransform是小部件的本地位置:

paint

例如,如果小部件的X位置小于20,我将其移至X的0位置:

offset

然后我将在父级窗口小部件的左侧添加10个像素填充,但该窗口小部件将粘在左侧:

  @override
  void paint(PaintingContext context, Offset offset) {
    if (child != null) {
      final Matrix4 transform = _effectiveTransform;
      final Offset childOffset = MatrixUtils.getAsTranslation(transform);
      if (childOffset == null) {
        layer = context.pushTransform(needsCompositing, offset, transform, super.paint, oldLayer: layer);
      } else {
        super.paint(context, offset + childOffset);
        layer = null;
      }
    }
  }

1