Animation In Flutter

تعداد بازدید ها : 658 بازدید
 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('شروع انیمیشن'),
            )
          ],
        ),
      ),
    );
  }
}

خروجی کد بالا به شکل زیر است :

Animation_In_Flutter

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

می خوانم   ویجت ListTile

امیدوارم این مطلب برای شما مفید باشد .

2+
محمدمجتبی جوارشکیان

محمدمجتبی جوارشکیان

من محمدمجتبی جوارشکیان ، کارشناس IT و فعال اجتماعی هستم و در حوزه معماری ، طراحی ، تحلیل گری ، مدلسازی و توسعه ی محیط های نرم افزاری فعالیت دارم . بسیار خوشحال می شوم من را از انتقادات ، پیشنهادات و نظرات خود مطلع فرمایید . آدرس ایمیل : info@javareshkian.ir

ارسال یک پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

1 × پنج =