يعد ScaleTransition
أحد عناصر الرسوم المتحركة في Flutter والذي يسمح للمطورين بتحريك وتغيير حجم عناصر واجهة المستخدم بشكل دائم أو مؤقت. يتم استخدام هذا العنصر الرسومي عادةً لتحريك الصور والأيقونات وحتى نصوص الواجهة وتأكيد العمليات الهامة وجذب انتباه المستخدمين.
خصائص ScaleTransition
هناك عدة خصائص يمكن تعيينها في ScaleTransition
لضبط الطريقة التي يتم بها تغيير حجم العنصر. وفيما يلي شرح لكل خاصية بالتفصيل:
“اقرأ أيضاً: شرح استخدام ويدجت Tooltip في فلاتر“
alignment
تحدد نقطة التوازن للعنصر المتغير الحجم. يمكن استخدام أحد القيم التالية:
Alignment.topLeft
Alignment.topCenter
Alignment.topRight
Alignment.centerLeft
Alignment.center
Alignment.centerRight
Alignment.bottomLeft
Alignment.bottomCenter
Alignment.bottomRight
ScaleTransition( alignment: Alignment.center, scale: _animation, child: Container( width: 200, height: 200, color: Colors.blue, ), )
scale
تحدد مقدار تغيير حجم العنصر. يمكن استخدام أي قيمة رقمية لهذه الخاصية.
AnimationController _controller = AnimationController( vsync: this, duration: Duration(seconds: 2), ); Animation<double> _animation = Tween<double>( begin: 1, end: 2, ).animate(_controller); ScaleTransition( scale: _animation, child: Container( width: 200, height: 200, color: Colors.blue, ), )
“اقرأ أيضاً: شرح استخدام ويدجت SafeArea في فلاتر“
child
يحدد العنصر الذي يتم تغيير حجمه.
ScaleTransition( scale: _animation, child: Container( width: 200, height: 200, color: Colors.blue, ), )
مثال على استخدام ScaleTransition
في فلاتر
هذا مثال بسيط يستخدم ScaleTransition
لتحريك وتغيير حجم عنصر واحد في التطبيق.
import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'ScaleTransition Example', theme: ThemeData( primarySwatch: Colors.blue, ), home: const MyScaleTransition(), ); } } class MyScaleTransition extends StatefulWidget { const MyScaleTransition({Key? key}) : super(key: key); @override _MyScaleTransitionState createState() => _MyScaleTransitionState(); } class _MyScaleTransitionState extends State<MyScaleTransition> with SingleTickerProviderStateMixin { late AnimationController _controller; late Animation<double> _animation; @override void initState() { super.initState(); _controller = AnimationController( vsync: this, duration: const Duration(seconds: 2), ); _animation = Tween<double>( begin: 1, end: 2, ).animate(_controller); _controller.repeat(); } @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return MaterialApp( title: 'Scale Transition Demo', home: Scaffold( appBar: AppBar( title: const Text('Scale Transition Demo'), ), body: Center( child: ScaleTransition( scale: _animation, child: Container( width: 200, height: 200, color: Colors.blue, child: const Center( child: Text( 'Scale', style: TextStyle( color: Colors.white, fontSize: 32, fontWeight: FontWeight.bold, ), ), ), ), ), ), ), ); } }
في هذا المثال، تم إنشاء ScaleTransition
الذي يتحرك ويتغير حجمه مع AnimationController
. تم استخدام Tween<double>
لتحديد مدى التغيير في حجم العنصر، وتم تمرير AnimationController
إلى Tween
لتحديد مدة التحرك. في build
، تم إنشاء ScaleTransition
وتمرير Animation
إلى scale
، وتم تمرير عنصر Container
إلى child
. تم تضمين Text
وسط العنصر لإظهار التغييرات في التغيير في حجم العنصر.
“اقرأ أيضاً: شرح استخدام ويدجت TextField في فلاتر“
ScaleTransition
هو عنصر رسومي يساعد المطورين على تحريك وتغيير حجم العناصر في واجهة المستخدم بشكل سهل وفعال. يمكن تخصيص العديد من الخصائص لتعديل طريقة تغيير حجم العنصر وتحسين تجربة المستخدم.