- ページ間の遷移アニメーション: Flutterでは、ページ間の遷移時にアニメーションを追加することができます。例えば、
PageRouteBuilder
クラスを使用して、フェードインやスライドなどのアニメーションを設定することができます。
Navigator.push(
context,
PageRouteBuilder(
pageBuilder: (context, animation, secondaryAnimation) => NextPage(),
transitionsBuilder: (context, animation, secondaryAnimation, child) {
return FadeTransition(
opacity: animation,
child: child,
);
},
),
);
- ナビゲーションバーのアニメーション: ナビゲーションバーのアイテムをタップした際に、アニメーションを追加することもできます。例えば、
BottomNavigationBar
ウィジェットを使用して、アイテム間のフェードアウトとフェードインのアニメーションを実装することができます。
int currentIndex = 0;
BottomNavigationBar(
currentIndex: currentIndex,
onTap: (index) {
setState(() {
currentIndex = index;
});
},
items: [
BottomNavigationBarItem(
title: Text('ホーム'),
icon: FadeTransition(
opacity: currentIndex == 0 ? 1.0 : 0.5,
child: Icon(Icons.home),
),
),
BottomNavigationBarItem(
title: Text('設定'),
icon: FadeTransition(
opacity: currentIndex == 1 ? 1.0 : 0.5,
child: Icon(Icons.settings),
),
),
],
)
- ページ内の要素のアニメーション: ページ内の要素にもアニメーションを追加することができます。例えば、
AnimatedContainer
やAnimatedOpacity
ウィジェットを使用して、要素の位置や透明度の変化をアニメーション化することができます。
bool isVisible = false;
FlatButton(
onPressed: () {
setState(() {
isVisible = !isVisible;
});
},
child: Text('切り替え'),
),
AnimatedOpacity(
opacity: isVisible ? 1.0 : 0.0,
duration: Duration(milliseconds: 500),
child: Text('表示される要素'),
),
これらのコード例は、Flutterでナビゲーションアニメーションを実装するための基本的な手法を示しています。さらに詳細なカスタマイズや複雑なアニメーションを追加するには、AnimationController
やTween
などのクラスを使用することもできます。Flutterの公式ドキュメントやコミュニティのリソースも参考にしてください。