编辑:修复它..往下看
老问题:
我正在尝试 Dismissible 小部件。我可以成功监控到方向的状态,存储在directionVar中。它输出类似DismissDirection.endToStart
我想使用此信息来更改我显示的图标的位置。删除项目时,背景为红色,右侧有一个图标。Gmail 之类的风格。
Widget build(BuildContext context) {
DismissDirection directionVar;
return ListView.builder(
itemBuilder: (BuildContext context, int index) {
return Dismissible(
key: Key(products[index]['title']), //Should be unique.
onDismissed: (DismissDirection direction) {
directionVar = direction;
},
我的问题是这部分:
background: Container(
color: Colors.red,
padding: EdgeInsets.only(left: 20.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Icon(
Icons.delete,
)
],
),
),);});}
我希望这部分根据directionVar
值进行更改。的padding
应该随 的值而变化directionVar
,以及mainAxisAlignment
。
这些方面的东西:
if(directionVar == DismissDirection.endToStart){
} else if (directionVar == DismissDirection.startToEnd){
}
但我无法访问这些语句中的background
: 和padding
属性,因为它们是Dismissible
小部件的属性并且不能在内部更改onDismissed(){}
这似乎是一个简单的问题,但似乎无法解决。
编辑:修复它..很容易..刚刚添加了这个:
secondaryBackground: Container(
color: Colors.red,
padding: EdgeInsets.only(right: 20.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Icon(
Icons.delete,
)
],
),
),