web-dev-qa-db-ja.com

Flutter:ListViewでのアイテム削除のアニメーション

ストリームからリストビューを構築しています。そのリストの削除と挿入をアニメーション化する必要がありますが、方法がわかりません。

Flutterがこのサンプルを見たことはありますが、ストリームとは何の関係もありません。 https://flutter.io/catalog/samples/animated-list/

どんな助けも大歓迎です:)

new StreamBuilder(

    stream: feed.stream, // this is a Stream<List<Product>>

    builder: (context, snapshot) {
      if (!snapshot.hasData)
        return const Text('Loading products');
      return new ListView.builder(
          itemCount: snapshot.data.length,
          itemBuilder: (context, index) {
            Product product = snapshot.data[index];
            return new ProductWidget(product);
          });
    });
9
gatti

これはStreamsを使用していませんが、AnimatedListの一般的な回答として、次のことができます。

enter image description here

// Remove "Pig" from the list
int removeIndex = 2;

// remove the item from the data list backing the AnimatedList
String removedItem = _data.removeAt(removeIndex);

// This builder is just so that the animation has something
// to work with before it disappears from view since the original
// has already been deleted.
AnimatedListRemovedItemBuilder builder = (context, animation) {
  // A method to build the Card widget.
  return _buildItem(removedItem, animation);
};

// notify the AnimatedList that the item was removed
_listKey.currentState.removeItem(removeIndex, builder);
3
Suragch