Dismissibleアイテムのリストを使用していますが、一方向にスワイプしてアイテムを削除したいが、もう一方の方向にスワイプしてアイテムの編集を開始します。しかし、Flutterは、onDismissedコールバックでDismissibleアイテムをツリーから削除する必要があると主張しています。私はアイテムを再挿入しようとしましたが、それは動作しません。何か案は?リスト項目を作成するコードからの抜粋を以下に示します。Flutter Dismissibleはリストアイテムをツリーから削除する必要があります
return new Dismissible(
key: new ObjectKey(item),
direction: DismissDirection.horizontal,
onDismissed: (DismissDirection direction) {
setState(() {
item.deleteTsk();
});
if (direction == DismissDirection.endToStart){
//user swiped left to delete item
_scaffoldKey.currentState.showSnackBar(new SnackBar(
content: new Text('You deleted: ${item.title}'),
action: new SnackBarAction(
label: 'UNDO',
onPressed:() { handleUndo(item); }
)
));
}
if (direction == DismissDirection.startToEnd){
//user swiped right to edit so undo the delete required by flutter
Async.scheduleMicrotask((){handleUndo(item);});
Navigator.of(context).pushNamed('/tskedit');
}
},
...
天才 - ありがとう!より一般的には、このような回避策はまったく必要ないというのはちょっと変です。私のユースケースはそれほど珍しいものではないと思ったでしょう。 – iBob101
「Dismissible」のこのユースケースは扱いにくいことに同意します。より良い行動を提案している場合は、[問題を提出する](https://github.com/flutter/flutter/issues/new)を自由にご利用ください。 –
完了:[link](https://github.com/flutter/flutter/issues/11825) – iBob101