Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 从右到左的颤振动画容器变换_Flutter_Flutter Layout - Fatal编程技术网

Flutter 从右到左的颤振动画容器变换

Flutter 从右到左的颤振动画容器变换,flutter,flutter-layout,Flutter,Flutter Layout,在下面这个简单的代码AnimatedContainer中,将动画从左到右转换为从右到左,有人能帮我吗 我的意思是改变xOffset,yOffset和pageScale变量 class _RedState extends State<Red> { GlobalKey<ScaffoldState> get _scaffoldState => widget.scaffoldState; bool sidebarOpen = false; double yO

在下面这个简单的代码
AnimatedContainer
中,将动画从
左到右
转换为
从右到左
,有人能帮我吗

我的意思是改变
xOffset
yOffset
pageScale
变量

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'),
            ),

          ],
        ),
      ),
    );
  }
}
class\u RedState扩展状态{
GlobalKey get _scaffoldState=>widget.scaffoldState;
bool-sidebarOpen=false;
双yOffset=0;
双xOffset=0;
双页标度=1;
int selectedMenuItem=0;
字符串pageTitle=“主页”;
void setSidebarState(){
设置状态(){
xOffset=侧杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆杆;
yOffset=sidebarOpen?70:0;
pageScale=sidebarOpen?0.8:1;
});
}
@凌驾
小部件构建(构建上下文){
返回方向性(
textDirection:textDirection.rtl,
孩子:脚手架(
背景颜色:常量颜色(0xffd3d7f0),
抽屉:抽屉(),
主体:堆栈(
儿童:[
动画容器(
曲线:Curves.easeInOut,
持续时间:持续时间(毫秒:200),
转换:矩阵4.转换值(xOffset,yOffset,-1.0)…比例(pageScale),
宽度:double.infinity,
高度:双无限,
子项:文本('test'),
),
],
),
),
);
}
}

将xOffset更改为负值

xOffset = sidebarOpen ? -165 : 0;