首页 > 解决方案 > Flutter AnimatedContainer 从 RightToLeft 转换

问题描述

在下面这个简单的代码AnimatedContainer转换动画工作中Left to Right,我想将其更改为Right to Left,有没有人可以帮助我如何做到这一点?

我的意思在变化xOffset,变量yOffsetpageScale

class _RedState extends State<Red> {
  GlobalKey<ScaffoldState> get _scaffoldState => widget.scaffoldState;

  bool sidebarOpen = false;

  double yOffset = 0;
  double xOffset = 0;
  double pageScale = 1;

  int selectedMenuItem = 0;

  String pageTitle = "Homepage";

  void setSidebarState() {
    setState(() {
      xOffset = sidebarOpen ? 165 : 0;
      yOffset = sidebarOpen ? 70 : 0;
      pageScale = sidebarOpen ? 0.8 : 1;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Directionality(
      textDirection: TextDirection.rtl,
      child: Scaffold(
        backgroundColor: const Color(0xffd3d7f0),
        drawer: Drawer(),
        body: Stack(
          children: <Widget>[
            AnimatedContainer(
              curve: Curves.easeInOut,
              duration: Duration(milliseconds: 200),
              transform: Matrix4.translationValues(xOffset, yOffset, -1.0)..scale(pageScale),
              width: double.infinity,
              height: double.infinity,
              child: Text('test'),
            ),

          ],
        ),
      ),
    );
  }
}

标签: flutterflutter-layout

解决方案


将 xOffset 更改为负值

xOffset = sidebarOpen ? -165 : 0;

推荐阅读