スタガードアニメーションと物理ベースアニメーション
Intervals と自然な物理ベースのばねシミュレーションによるスタガードアニメーションで、Flutter に豊かな動きを加えます。
「スタガードアニメーションと物理ベースアニメーション」はCoddyKit上の無料Flutter Mobile Developmentレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlutter Mobile Development学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flutter Mobile Developmentコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
Beyond a Single Tween
You already know implicit and explicit animations. Staggered animations sequence multiple properties on one controller, and physics-based animations make motion feel natural.
One Controller, Many Animations
A single AnimationController can drive several Animation objects, each running during a different slice of time.
final controller = AnimationController(
vsync: this,
duration: const Duration(seconds: 2),
);Intervals
A CurvedAnimation with an Interval restricts an animation to a fraction of the parent timeline.
final fade = CurvedAnimation(
parent: controller,
curve: const Interval(0.0, 0.4, curve: Curves.easeIn),
);Staggering Properties
Give each property its own interval so they animate in sequence — fade first, then slide, then scale.
final slide = CurvedAnimation(
parent: controller,
curve: const Interval(0.4, 0.7, curve: Curves.easeOut),
);
final scale = CurvedAnimation(
parent: controller,
curve: const Interval(0.7, 1.0, curve: Curves.elasticOut),
);Driving the Tweens
Map each curved animation through a Tween to the values you need.
final opacity = Tween<double>(begin: 0, end: 1).animate(fade);
final offset = Tween<Offset>(
begin: const Offset(0, 0.3), end: Offset.zero,
).animate(slide);Building the Widget
Use AnimatedBuilder to rebuild as the controller ticks, applying every staggered value at once.
AnimatedBuilder(
animation: controller,
builder: (context, child) => Opacity(
opacity: opacity.value,
child: SlideTransition(position: offset, child: child),
),
child: const Card(child: Text('Hello')),
);Starting the Sequence
Call forward() to play. Because intervals overlap or chain, the children animate in a pleasing stagger.
@override
void initState() {
super.initState();
controller.forward();
}What Are Physics Simulations?
Physics-based animations ignore fixed durations and instead model forces. A SpringSimulation produces realistic bounce and settle.
Spring Simulation
Define a SpringDescription (mass, stiffness, damping) and run it with the controller.
const spring = SpringDescription(mass: 1, stiffness: 100, damping: 10);
final sim = SpringSimulation(spring, 0, 1, 0);
controller.animateWith(sim);Fling Gestures
The fling method launches an animation with velocity, perfect for swipe-to-dismiss or drag release.
void onDragEnd(DragEndDetails d) {
controller.fling(velocity: d.primaryVelocity! / 1000);
}Dispose the Controller
Always dispose the controller to free its ticker.
@override
void dispose() {
controller.dispose();
super.dispose();
}Quick Check
How do you make several properties of one controller animate in sequence rather than all at once?
Recap
You learned advanced motion:
- Staggered animations via Intervals on one controller
- AnimatedBuilder to apply many values together
- Physics simulations with SpringSimulation and fling
These techniques make your UI feel alive and natural.
AI チューターと学ぶ Dart — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 22
- レッスン
- 88
よくある質問
「スタガードアニメーションと物理ベースアニメーション」レッスンは無料ですか?
はい。「スタガードアニメーションと物理ベースアニメーション」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flutter Mobile Developmentコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flutter Mobile Developmentコースには全4レッスンが含まれています。
「スタガードアニメーションと物理ベースアニメーション」で何を学びますか?
Intervals と自然な物理ベースのばねシミュレーションによるスタガードアニメーションで、Flutter に豊かな動きを加えます。 ブラウザで直接実行するハンズオンコードでFlutter Mobile Developmentを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Flutter Mobile Developmentを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのFlutter Mobile Developmentは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「スタガードアニメーションと物理ベースアニメーション」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このFlutter Mobile Developmentレッスンでコードを書いて実行できますか?
はい。すべてのFlutter Mobile Developmentレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- CustomPainterとCanvas
- 暗黙的アニメーション
- 明示的アニメーションとHero
- スタガードアニメーションと物理ベースアニメーション