我想对Container小部件(包含一些其他小部件)执行非常简单的2D旋转.此小部件将围绕中心的单个固定点旋转,不会变形.

我try 将transform属性与Matrix4.rotationZ一起使用,这在一定程度上是可行的-但是锚点在top-left角,而不是center.有没有简单的方法来指定那个锚点?

此外,有没有一种更简单的方法来2D旋转这个不需要Matrix4的小部件?

desired and actual transformations

var container = new Container (
  child: new Stack (
    children: [
      new Image.asset ( // background photo
        "assets/texture.jpg",
        fit: ImageFit.cover,
      ),
      new Center (
        child: new Container (
          child: new Text (
            "Lorem ipsum",
            style: new TextStyle(
              color: Colors.white,
              fontSize: 42.0,
              fontWeight: FontWeight.w900
            )
          ),
          decoration: new BoxDecoration (
            backgroundColor: Colors.black,
          ),
          padding: new EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 16.0),
          transform: new Matrix4.rotationZ(0.174533), // rotate -10 deg
        ),
      ),
    ],
  ),
  width: 400.0,
  height: 200.0,
);

推荐答案

在旋转前后应用平移(到支点和从支点).

您可以自己创建一个小部件来实现这一点,从而同时解决其他问题(隐藏Matrix4).

Flutter相关问答推荐

所需引用Firebase处不存在任何对象

Flutter 动画列表一次构建所有项目,而不是仅构建可见的项目

从超级应用程序启动时,Flutter 小应用程序中未加载资源

Flutter 隔离.使用多个参数运行

确保通过在CheckIfFavoriteMovieEvent((event,emit){...})上注册处理程序误差

StateNotifer正在riverpod中提供初始状态值(bool)

打开键盘时屏幕组件会被压扁

在参数为空时保持命名参数的默认值

如何在Flutter中显示ListView Builder区域外的列表数据?

setState 方法有时有效,有时无效

如何格式化网址?

如何在 flutter 的alert 对话框中实现进度指示器?

如何获得Flutter 的时差?

在 Android 12+ 中,REST API 调用在 flutter 中非常慢,在 WiFi 中需要 10 秒,而在移动数据中不到一秒

如何在 SingleChildScrollView 小部件中管理自定义小部件状态

扫描flutter生成的二维码后如何弹出文本字段值

Android Studio 模拟器屏幕闪烁

解密 Modulr 安全令牌

如何在 IntroductionScreen 小部件 Flutter 中制作全屏渐变色

"!" 是什么意思该运算符在使用如下方式时意味着dart ?