AnimationSwitcherウィジェット

概要

AnimationSwitcherウィジェットは、childにてifが用意されているとき、その切り替え時にアニメーションを実行するウィジェットである。

見た目

解説

このコードでは、_isShowImagePicker変数によりアニメーションをスイッチしている。

AnimatedSwitcher(
 switchInCurve: Curves.easeInOut,
 switchOutCurve: Curves.easeInOut,
 duration: const Duration(milliseconds: 300),
 child: _isShowImagePicker
    ? ImagePickAndselectWidget(
        closeFragmentCallback: () {
          setState(() {
            _isShowImagePicker = !_isShowImagePicker;
          });
        },
      )
    : Container(),
 transitionBuilder: (Widget child, Animation<double> animation) {
    return SlideTransition(
      position: Tween<Offset>(
        begin: const Offset(0, 1),
        end: Offset.zero,
      ).animate(animation),
      child: child,
    );
 },
)
 

プロパティ

名称概要備考
childアニメーションを適用する子ウィジェットを指定。子ウィジェットが変更されると、アニメーションがトリガーされる。
durationアニメーションの持続時間を指定。アニメーションの速度を制御。
reverseDurationアニメーションが逆方向に進む際の持続時間を指定。duration と同様にアニメーションの速度を制御しますが、逆方向のアニメーションにのみ適用される。
switchInCurve新しい子ウィジェットが表示される際のアニメーションカーブを指定。アニメーションの挙動をカスタマイズ。
switchOutCurve既存の子ウィジェットが非表示になる際のアニメーションカーブを指定。アニメーションの挙動をカスタマイズ。
transitionBuilderアニメーションのトランジションをカスタマイズするためのビルダーを指定。デフォルトのクロスフェード以外のトランジションを実装するために使用される。
layoutBuilder子ウィジェットのレイアウトをカスタマイズするためのビルダーを指定。子ウィジェットのサイズや位置を動的に変更するために使用される。