Flutter 设置动画时,AnimatedContainer获取渲染错误';s高度,因为它在增加高度时包含图标
长按时,容器需要增加其高度并显示图标。 但当增大大小时,当长按图标值时,会出现渲染错误。如何解决这个问题Flutter 设置动画时,AnimatedContainer获取渲染错误';s高度,因为它在增加高度时包含图标,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,长按时,容器需要增加其高度并显示图标。 但当增大大小时,当长按图标值时,会出现渲染错误。如何解决这个问题 GestureDetector( onLongPress: () { setState(() { widget.heightoo = widget.heightoo == 100 ? 150 : 100; widget.booly = widget.booly == true ? false : true;
GestureDetector(
onLongPress: () {
setState(() {
widget.heightoo = widget.heightoo == 100 ? 150 : 100;
widget.booly = widget.booly == true ? false : true;
});
},
child: AnimatedContainer(
duration: new Duration(milliseconds: 500),
height: widget.heightoo,
padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
child: Card(
elevation: 4,
shape:
RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
child: Row(
children: <Widget>[
SizedBox(
width: 20,
),
Container(
height: 50,
width: 50,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: Colors.lightBlueAccent,
),
child: ClipRRect(
borderRadius: BorderRadius.circular(14),
child: Icon(Icons.person)),
),
SizedBox(
width: 20,
),
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
width: 145,
child: Text(
widget.tasks1,
maxLines: 2,
softWrap: true,
overflow: TextOverflow.fade,
style: TextStyle(
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 12,
color: platformblue),
),
),
Container(
width: 145,
child: Text(
widget.tasks3 + ' ' + widget.tasks4,
),
),
],
),
SizedBox(
width: 20,
),
Icon(
!widget.booly
? widget.task2 ? Icons.live_tv : Icons.location_on
: null,
size: 40,
color: Color(0xFF2143af)),
],
),
),
Container(
child: widget.booly
? Padding(
padding: const EdgeInsets.only(top: 15),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Icon(
Icons.edit,
color: Color(0xFF2143af),
),
Container(
color: Colors.white,
height: 30,
width: 1,
child: VerticalDivider(
color: Colors.black,
),
),
GestureDetector(
onTap: () {
print(widget.tasks1);
},
child: Icon(Icons.location_on,
color: Color(0xFF2143af))),
],
),
)
: null)
],
),
),
),
);
手势检测器(
onLongPress:(){
设置状态(){
widget.heightoo=widget.heightoo==100?150:100;
widget.booly=widget.booly==true?false:true;
});
},
子:动画容器(
持续时间:新的持续时间(毫秒:500),
高度:widget.heightoo,
填充:边缘组。对称(水平:20,垂直:10),
孩子:卡片(
标高:4,
形状:
RoundedRectangleBorder(borderRadius:borderRadius.circular(20)),
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
容器(
孩子:排(
儿童:[
大小盒子(
宽度:20,
),
容器(
身高:50,
宽度:50,
装饰:盒子装饰(
边界半径:边界半径。圆形(14),
颜色:Colors.lightBlueAccent,
),
孩子:ClipRRect(
边界半径:边界半径。圆形(14),
子:图标(Icons.person)),
),
大小盒子(
宽度:20,
),
纵队(
mainAxisAlignment:mainAxisAlignment.center,
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
容器(
宽度:145,
子:文本(
widget.tasks1,
maxLines:2,
软包装:是的,
溢出:TextOverflow.fade,
样式:TextStyle(
fontFamily:“罂粟花”,
fontWeight:fontWeight.w600,
尺寸:12,
颜色:平台蓝),
),
),
容器(
宽度:145,
子:文本(
widget.tasks3+“”+widget.tasks4,
),
),
],
),
大小盒子(
宽度:20,
),
图标(
!布利
?widget.task2?Icons.live\u电视:Icons.location\u打开
:null,
尺码:40,
颜色:颜色(0xFF2143af)),
],
),
),
容器(
孩子:widget.booly
?填充物(
填充:仅限常量边集(顶部:15),
孩子:排(
mainAxisAlignment:mainAxisAlignment.space,
儿童:[
图标(
图标。编辑,
颜色:颜色(0xFF2143af),
),
容器(
颜色:颜色,白色,
身高:30,
宽度:1,
儿童:垂直分隔器(
颜色:颜色,黑色,
),
),
手势检测器(
onTap:(){
打印(widget.tasks1);
},
子:图标(Icons.location_on,
颜色:颜色(0xFF2143af)),
],
),
)
:null)
],
),
),
),
);
有没有其他最好的方法以同样的方式设置容器的动画
我添加了随机词,因为StackOverflow说帖子主要是代码。添加更多细节
IBICSCNLSCCNLJSNCLDNSCCJCNLSDCCKLSCK csdbicinscj bcnnj ucubdcnuaxn BCCUIASNSCH