DecoratedBoxTransition هو عنصر رسومي في Flutter يستخدم لتحريك وتغيير خصائص الزخرفة (Decoration) لـ BoxDecoration. يمكن استخدام هذا العنصر الرسومي لتحريك الصور والأشكال والخلفيات وتحسين تجربة المستخدم.
خصائص DecoratedBoxTransition
هناك عدة خصائص يمكن تعيينها في DecoratedBoxTransition لضبط الطريقة التي يتم بها تغيير خصائص الزخرفة. وفيما يلي شرح لكل خاصية بالتفصيل:
“اقرأ أيضاً: شرح استخدام ويدجت Tooltip في فلاتر“
decoration
تحدد خصائص الزخرفة (Decoration) التي يتم تغييرها. يمكن استخدام أي BoxDecoration لهذه الخاصية.
DecoratedBoxTransition(
decoration: _decoration,
child: Container(
width: 200,
height: 200,
),
)
position
تحدد مكان بدء التحرك والتغيير في خصائص الزخرفة. يمكن استخدام أي نقطة Alignment لهذه الخاصية.
DecoratedBoxTransition(
decoration: _decoration,
duration: Duration(seconds: 1),
position: DecorationPosition.background,
child: Container(
width: 200,
height: 200,
),
)
“اقرأ أيضاً: شرح استخدام ويدجت SafeArea في فلاتر“
child
يحدد العنصر الذي يتم تغيير خصائص الزخرفة فيه.
DecoratedBoxTransition(
decoration: _decoration,
duration: Duration(seconds: 1),
child: Container(
width: 200,
height: 200,
),
)
مثال على استخدام DecoratedBoxTransition في فلاتر
فيما يلي مثال كامل على استخدام DecoratedBoxTransition في Flutter لتحريك وتغيير خصائص الزخرفة لـ BoxDecoration:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'DecoratedBoxTransition Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyDecoratedBoxTransition(),
);
}
}
class MyDecoratedBoxTransition extends StatefulWidget {
const MyDecoratedBoxTransition({Key? key}) : super(key: key);
@override
_MyDecoratedBoxTransitionState createState() =>
_MyDecoratedBoxTransitionState();
}
class _MyDecoratedBoxTransitionState extends State<MyDecoratedBoxTransition>
with TickerProviderStateMixin {
late AnimationController _controller;
late Animation<Decoration> _animation;
@override
void initState() {
super.initState();
_controller = AnimationController(
duration: const Duration(seconds: 2),
vsync: this,
);
_animation = DecorationTween(
begin: BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.circular(20),
),
end: BoxDecoration(
color: Colors.red,
borderRadius: BorderRadius.circular(100),
),
).animate(_controller);
_controller.repeat(reverse: true);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'DecoratedBoxTransition Demo',
home: Scaffold(
appBar: AppBar(
title: const Text('DecoratedBoxTransition Demo'),
),
body: Center(
child: DecoratedBoxTransition(
decoration: _animation,
position: DecorationPosition.background,
child: Container(
width: 200,
height: 200,
),
),
),
),
);
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
}
في هذا المثال، تم إنشاء DecorationTween لتحديد خصائص الزخرفة التي يتم تغييرها. تم استخدام BoxDecoration لتحديد اللون وشكل الحواف. ثم تم إنشاء AnimationController و Animation<Decoration> لتحريك وتغيير الخصائص. تم إنشاء عنصر DecoratedBoxTransition وتمرير الديكور الذي يتم تغييره والموضع الذي يتم تغييره فيه والعنصر الذي يتم تغيير خصائصه. تم استخدام Center لعرض العنصر في المنتصف.
يمكن تخصيص هذا المثال بتغيير قيم BoxDecoration لتحديد اللون وشكل الحواف ومدة التحرك والمنحنى ومكان بدء التحرك.
“اقرأ أيضاً: شرح استخدام ويدجت TextField في فلاتر“
DecoratedBoxTransition هو عنصر رسومي يساعد المطورين على تحريك وتغيير خصائص الزخرفة لـ BoxDecoration في واجهة المستخدم. يمكن تخصيص العديد من الخصائص لتعديل طريقة تغيير الزخرفة، بما في ذلك التحكم في مدة التحرك ومنحنى التحول ومكان بدء التحرك وتشغيل وظائف مخصصة عند انتهاء التحرك. يمكن استخدام هذا العنصر الرسومي في العديد من التطبيقات ، مثل تحريك عنصر بصري عند النقر عليه أو إضافة تحركات إلى الصفحات في تطبيقات الويب.
أما بشكل عام، فإن DecoratedBoxTransition هو أداة قوية لإضافة حركة وتفاعلية إلى واجهة المستخدم في تطبيقات Flutter. يمكن استخدام هذا العنصر الرسومي بسهولة وتخصيصه لتلبية متطلبات التطبيق الفريدة.




