-
アニメーションコントローラーを使用した基本的なアニメーション:
import 'package:flutter/material.dart'; class BasicAnimationText extends StatefulWidget { @override _BasicAnimationTextState createState() => _BasicAnimationTextState(); } class _BasicAnimationTextState extends State<BasicAnimationText> with SingleTickerProviderStateMixin { AnimationController _controller; Animation<double> _animation; @override void initState() { super.initState(); _controller = AnimationController( duration: Duration(seconds: 1), vsync: this, ); _animation = Tween<double>(begin: 0, end: 1).animate(_controller); _controller.forward(); } @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return AnimatedBuilder( animation: _animation, builder: (BuildContext context, Widget child) { return Opacity( opacity: _animation.value, child: Text( "Hello, Flutter!", style: TextStyle(fontSize: 24), ), ); }, ); } }
この例では、
AnimationController
とAnimation
を使用して、テキストの不透明度をアニメーション化しています。AnimationController
はアニメーションの制御を担当し、Animation
はアニメーションの値を保持します。AnimatedBuilder
ウィジェットは、アニメーションの値が変化するたびにビルドされ、テキストの不透明度を更新します。 -
TweenAnimationBuilderを使用したカスタムアニメーション:
import 'package:flutter/material.dart'; class CustomAnimationText extends StatelessWidget { @override Widget build(BuildContext context) { return TweenAnimationBuilder<double>( tween: Tween<double>(begin: 0, end: 1), duration: Duration(seconds: 1), builder: (BuildContext context, double value, Widget child) { return Opacity( opacity: value, child: Text( "Hello, Flutter!", style: TextStyle(fontSize: 24), ), ); }, ); } }
この例では、
TweenAnimationBuilder
を使用してカスタムアニメーションを作成しています。tween
パラメーターに開始値と終了値を指定し、builder
コールバック内でアニメーションの値を取得してテキストの不透明度を更新します。 -
AnimatedDefaultTextStyleを使用したテキストのスタイル変更:
import 'package:flutter/material.dart'; class TextStyleAnimation extends StatefulWidget { @override _TextStyleAnimationState createState() => _TextStyleAnimationState(); } class _TextStyleAnimationState extends State<TextStyleAnimation> { bool _isBold = false; void _toggleBold() { setState(() { _isBold = !_isBold; }); } @override Widget build(BuildContext context) { return GestureDetector( onTap: () { _toggleBold(); }, child: AnimatedDefaultTextStyle( style: _isBold ? TextStyle(fontSize: 24, fontWeight: FontWeight.bold) : TextStyle(fontSize: 24, fontWeight: FontWeight.normal), duration: Duration(milliseconds: 300), child: Text("Hello, Flutter!"), ), ); } }
この例では、
AnimatedDefaultTextStyle
を使用してテキストのスタイルをアニメーション化しています。ユーザーがテキストをタップすると、テキストの太字の状態を切り替えることができます。AnimatedDefaultTextStyle
ウィジェットは、スタイルの変更をアニメーション化するために使用されます。
これらはいくつかの基本的なアニメーションテキストの実装方法の例です。Flutterでは、さまざまなアニメーションライブラリやカスタムアニメーションの作成方法がありますので、必要に応じてさらに研究してみてください。また、Flutterの公式ドキュメントやフラッターパッケージのリソースも参考になります。