dart - Flutter 如何防止子进程与父进程轮换?

标签 dart flutter

如何防止子文本随父文本旋转?

这是我所拥有的示例代码。我不希望文本小部件与父容器一起旋转。有有效的方法吗?否则我可能必须将子 Text 包装在另一个 Transform.rotate 中并将其旋转回来。

class MyRotateContainer extends StatefulWidget {
@override
  _MyRotateContainerState createState() => new _MyRotateContainerState();
}

class _MyRotateContainerState extends State<MyRotateContainer> {
@override
Widget build(BuildContext context) {
  return new Transform.rotate(
    angle: (30.0 * PI / 180.0),
    child: new Container(
      child: new Text(
        'SOME TEXT',
        textScaleFactor: 2.0,
      ),
    ));
 }
}

最佳答案

旋转问题的解决方案非常简单。您可以添加第二个 Transform.rotate ,包装您的 Text Widget,如下面的代码所示。我向 Container 添加了红色以显示旋转的 Container

在添加第二次旋转之前: Before adding 2nd rotate

添加第二次旋转后: After adding the 2nd rotate

class MyRotateContainer extends StatefulWidget {
  @override
  _MyRotateContainerState createState() => new _MyRotateContainerState();
}

class _MyRotateContainerState extends State<MyRotateContainer> {
  @override
  Widget build(BuildContext context) {
    double angle = 30.0 * pi / 180.0;

    return Transform.rotate(
      angle: angle,
      child: Container(
        color: Colors.red,
        child: Transform.rotate(
          angle: -angle,
          child: Text(
            'SOME TEXT',
            textScaleFactor: 2.0,
          ),
        ),
      ),
    );
  }
}

关于dart - Flutter 如何防止子进程与父进程轮换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49849847/

相关文章:

flutter - 代码应该写在 super.initState(); 之前吗?或者在 Flutter 之后?

ios - Flutter firebase_admob 在默认应用安装的 iOS 上不工作

dart - 使扩展 FAB 居中

android - 在 Play 商店中发布 Android 应用程序后,Firebase 云消息传递无法正常工作

firebase - Android 上的 Flutter/Firebase verifyPhoneNumber() 总是调用 recaptcha "Verifying you' re not a robots"

postgresql - 原生扩展 Dart

android - 如何在 Flutter 中集成 Instagram 登录

android - 用于桌面的 flutter 插件是否必须使用特定于平台的语言编写(例如我们使用 C++ 的 windows 和我们使用 Swift 的 mac)

dart - 为什么 FocusNode 需要在 flutter 中配置?

firebase - 当应用程序已经在运行并且使用Firebase动态链接时,导航不起作用