Animation In Flutter
مبحث انیمیش در فلاتر ، از جذاب ترین مباحث کار می باشد . شما به راحتی می توانید افکت های حرکتی مختلفی را به ویجت های موجود در UI بدهید . در زیر نمونه ای کوچک از پیاده سازی یک انیمیشن قرار دارد . در این مثال سعی شده روش کار با چهار جزء سازنده یک انیمیشن شامل : Animation , AnimationController , Tween , AnimatedBuilder به نمایش گذاشته شود .
کد پیاده سازی این انیمیشن به شکل زیر است :
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
debugShowCheckedModeBanner: false,
home: MyApp(),
));
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
AnimationController controller; // تعریف یک انیمیشن کنترلر
Animation<double> animation; // تعریف یک انیمیشن
@override
void initState() {
// TODO: implement initState
super.initState();
// مقداردهی به کنترلر
controller = AnimationController(
vsync: this, duration: Duration(milliseconds: 2000));
// مقداردهی به انیمیشن
animation = Tween(begin: 0.0, end: 300.0)
.animate(CurvedAnimation(parent: controller, curve: Curves.bounceOut));
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('انیمیشن در فلاتر'),
centerTitle: true,
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
// استفاده از انیمیش بیلدر جهت ساخت انیمیشن
AnimatedBuilder(
animation: controller, // ارسال کنترلر به انیمیشن بیلدر
builder: (BuildContext context, Widget child) {
return Container(
width: animation.value,
height: animation.value,
child: Image.network('https://javareshkian.ir/wp-content/uploads/2020/03/javareshkian4.png')
);
},
),
RaisedButton(
onPressed: () {
if (controller.isDismissed) // اگر انیمشن شروع نشده بود
controller.forward(); // اجرای انیمیشن
else if (controller.isCompleted) // اگر انیمیشن اتمام یافته بود
controller.reverse(); // اجرای معکوس انیمیشن
},
child: Text('شروع انیمیشن'),
)
],
),
),
);
}
}
خروجی کد بالا به شکل زیر است :

جهت کسب اطلاعات بیشتر از این آدرس به سایت اصلی فلاتر مراجعه نمایید .
امیدوارم این مطلب برای شما مفید باشد .