91640


FlutterでAnimatedListのitemBuilder内でSizeTransitionを使ってListの要素の追加時と削除時にアニメーションしているのですが、より早いアニメーション(アニメーションの開始から終了までを早くしたい)にするにはどうすればいいのでしょうか?

今はSizeTransitionのデフォルトのアニメーションなのですが、これを変更するにはどうすればいいですか?

[code]

    Widget _buildItem(Host host, Animation<double> animation) {
      return SizeTransition(
        sizeFactor: animation,
        child: ListTile(
          title: Text(host.name),
          trailing: PopupMenuButton(
            itemBuilder: (context) {
              return [
                PopupMenuItem(child: Text("Edit"), value: host),
                PopupMenuItem(
                    child: Text("Delete"),
                    onTap: () {
                      AnimatedListRemovedItemBuilder builder =
                          (context, animation) {
                        return _buildItem(host, animation);
                      };
                      hosts.removeAt(host.own_index);
    
                      _listKey.currentState!.removeItem(host.own_index, builder,
                          duration: Duration(milliseconds: 200));
                    }),
              ];
            },
            icon: Icon(Icons.more_vert),
          ),
        ),
      );
    }
    
[/code]


CC BY-SA 4.0
2022-10-16T14:07:04.073
91634
2022-10-17T04:44:41.187
2022-10-17T00:10:32.383
3060
5246
question
flutter dart
FlutterでAnimatedListのitemBuilderに適用されるアニメーション速度を変更したい


`AnimatedListState`の`insertItem`と`removeItem`の`duration`パラメータに短い時間設定をしたらできませんか。

提示されたコードであれば、`_listKey.currentState`が`AnimatedListState`のオブジェクトに当たると思います。

提示されたコード上は、削除を200msに設定してありますが、それを50msとかに設定するとか。  
`insertItem`部分のコードは提示されていないけど、そちらも似たような実装で実現できると思います。


CC BY-SA 4.0
2022-10-17T04:44:41.187
91640
2022-10-17T04:44:41.187
54446
91634
answer