Редактировать: Исправлено .. Посмотрите вниз
Старая проблема:
Я экспериментирую с виджетом Отклонение.Я могу успешно отслеживать состояние направления, которое сохраняется в 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,
)
],
),
),