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;