Flutter هو إطار عمل مفتوح المصدر لتطوير التطبيقات المحمولة والويب، ويوفر العديد من المكونات والأدوات لإنشاء تجارب مستخدم متميزة. واحدة من هذه المكونات هي AnimatedPhysicalModel، والتي تسمح بإضافة تحريكات إلى خاصية الظل المادي لعناصر الواجهة.
ما هو AnimatedPhysicalModel في فلاتر؟
تساعد AnimatedPhysicalModel على تحسين التصميم وتجربة المستخدم عن طريق إضافة تأثيرات حركية إلى الظل المادي للعناصر. يمكن استخدام AnimatedPhysicalModel لإنشاء تحريكات مثل تحريك خاصية الظل المادي للعنصر داخل حاوية.
“اقرأ أيضاً: شرح استخدام ويدجت ClipRect في فلاتر“
خصائص AnimatedPhysicalModel
shape
تستخدم هذه الخاصية لتحديد شكل العنصر. يمكن تحديد هذه الخاصية باستخدام كائن ShapeBorder.
AnimatedPhysicalModel( shape: BoxShape.circle, child: Container( width: 200, height: 200, color: Colors.blue, ), );
“اقرأ أيضاً: شرح استخدام ويدجت Offstage في فلاتر“
elevation
تستخدم هذه الخاصية لتحديد قيمة الظل المادي للعنصر. يجب تمرير قيمة double إلى هذه الخاصية.
AnimatedPhysicalModel( elevation: 10.0, child: Container( width: 200, height: 200, color: Colors.blue, ), );
color
تستخدم هذه الخاصية لتحديد لون الظل المادي للعنصر. يجب تمرير كائن Color إلى هذه الخاصية.
AnimatedPhysicalModel( elevation: 10.0, color: Colors.blue, child: Container( width: 200, height: 200, color: Colors.white, ), );
shadowColor
تستخدم هذه الخاصية لتحديد لون الظل الذي يتم عرضه خارج العنصر. يجب تمرير كائن Color إلى هذه الخاصية.
AnimatedPhysicalModel( elevation: 10.0, color: Colors.white, shadowColor: Colors.blue, child: Container( width: 200, height: 200, color: Colors.white, ), );
duration
تستخدم هذه الخاصية لتحديد مدة التحريكات التي ستتم على خاصية الظل المادي للعنصر. يجب تمرير كائن Duration إلى هذه الخاصية.
AnimatedPhysicalModel( duration: Duration(milliseconds: 500), elevation: 10.0, color: Colors.white, shadowColor: Colors.blue, child: Container( width: 200, height: 200, color: Colors.white, ), );
curve
تستخدم هذه الخاصية لتحديد نمط التحريكات التي ستتم على خاصية الظل المادي للعنصر. يجب تمرير كائن Curve إلى هذه الخاصية.
AnimatedPhysicalModel( duration: Duration(milliseconds: 500), curve: Curves.easeInOut, elevation: 10.0, color: Colors.white, shadowColor: Colors.blue, child: Container( width: 200, height: 200, color: Colors.white, ), );
borderRadius
تستخدم هذه الخاصية لتحديد شكل زوايا العنصر. يمكن تحديد هذه الخاصية باستخدام كائن BorderRadius.
AnimatedPhysicalModel( duration: Duration(milliseconds: 500), curve: Curves.easeInOut, elevation: 10.0, color: Colors.white, shadowColor: Colors.blue, borderRadius: BorderRadius.circular(10.0), child: Container( width: 200, height: 200, color: Colors.white, ), );
animateColor
تستخدم هذه الخاصية لتحديد ما إذا كان لون الظل المادي يتم تحريكه أم لا. يجب تمرير قيمة boolean إلى هذه الخاصية.
AnimatedPhysicalModel( duration: Duration(milliseconds: 500), curve: Curves.easeInOut, elevation: 10.0, color: Colors.white, shadowColor: Colors.blue, borderRadius: BorderRadius.circular(10.0), animateColor: true, child: Container( width: 200, height: 200, color: Colors.white, ), );
onEnd
تستخدم هذه الخاصية لتحديد الدالة التي سيتم استدعاؤها عند انتهاء التحريكات. يجب تمرير دالة إلى هذه الخاصية.
AnimatedPhysicalModel( duration: Duration(milliseconds: 500), curve: Curves.easeInOut, elevation: 10.0, color: Colors.white, shadowColor: Colors.blue, borderRadius: BorderRadius.circular(10.0), animateColor: true, animateShape: true, onEnd: () { print("Animation ended"); }, child: Container( width: 200, height: 200, color: Colors.white, ), );
“اقرأ أيضاً: شرح استخدام ويدجت TextButton في فلاتر“
تساعد AnimatedPhysicalModel على إضافة تحريكات لخاصية الظل المادي للعناصر في Flutter، وتوفر طريقة سهلة لتحسين تصميم التطبيق وتجربة المستخدم. يمكن تحديد شكل العنصر باستخدام خاصية shape وتحديد قيمة الظل المادي باستخدام خاصية elevation وتحديد لون الظل المادي باستخدام خاصية color وتحديد لون الظل الخارجي باستخدام خاصية shadowColor. يمكن تحديد مدة التحريكات باستخدام خاصية duration وتحديد نمط التحريكات باستخدام خاصية curve. يمكن تحديد شكل زوايا العنصر باستخدام خاصية borderRadius وتحديد ما إذا كان لون الظل المادي وشكله يتم تحريكهما باستخدام الخصائص animateColor و animateShape. يمكن تحديد دالة تستخدم لتحديد الدالة التي سيتم استدعاؤها عند انتهاء التحريكات باستخدام خاصية onEnd. يجب تمرير قيمة boolean إلى الخاصيتين animateColor و animateShape لتحديد ما إذا كان يتم تحريك لون الظل المادي وشكله. يمكن استخدام AnimatedPhysicalModel لتحسين التصميم والتجربة في التطبيقات المحمولة والويب.
يمكن استخدام AnimatedPhysicalModel في أي عنصر واجهة مستخدم في Flutter، وتحديد خصائصه لإنشاء تحريكات مختلفة. يمكن استخدام الخاصيتين animateColor و animateShape معًا لإنشاء تحريكات متزامنة للظل المادي وشكل العنصر. يمكن تغيير قيم الخصائص أثناء تشغيل التطبيق لتحديث الظل المادي للعنصر بتحريكات مختلفة.
باستخدام AnimatedPhysicalModel، يمكن تحسين التصميم وتجربة المستخدم في التطبيقات المحمولة والويب في Flutter. يمكن تحديد العديد من الخصائص لإنشاء تحريكات مختلفة للظل المادي للعنصر، بما في ذلك شكل العنصر وقيمة الظل المادي ولون الظل المادي ولون الظل الخارجي ومدة التحريكات ونمط التحريكات وشكل زوايا العنصر.