في بعض الأحيان، يحتاج المستخدمون إلى إزالة عناصر من واجهة المستخدم الخاصة بهم. في Flutter، يمكن استخدام عنصر Dismissible لإضافة إمكانية إزالة العناصر من القائمة أو القائمة المنبثقة أو الجدول بسهولة. في هذه المقالة، سنتحدث بالتفصيل عن عنصر Dismissible وجميع خصائصه.
ما هو Dismissible في فلاتر؟
Dismissible هو عنصر واجهة مستخدم في Flutter يسمح بإزالة العناصر بسهولة من القائمة أو الجدول أو القائمة المنبثقة. يمكن استخدامه لتحسين تجربة المستخدم وجعل الإزالة سهلة وبديهية. تعتمد عملية الإزالة على تحريك العنصر بصورة انتقالية (تنقل) لليمين أو لليسار، وبعد ذلك يتم إزالة العنصر.
“اقرأ أيضاً: شرح استخدام ويدجت AspectRatio في فلاتر“
خصائص Dismissible في فلاتر
يحتوي Dismissible على العديد من الخصائص التي يمكن تعيينها لتخصيص سلوك الإزالة. سنتحدث بالتفصيل عن كل خاصية من هذه الخصائص ونوضحها بالأكواد الكاملة المناسبة.
الخاصية key
تحدد المفتاح الفريد للعنصر. يمكن تعيين هذه الخاصية عبر الكود التالي:
Dismissible( key: ValueKey(item.id), child: ListTile( title: Text(item.title), subtitle: Text(item.subtitle), trailing: Icon(Icons.delete), ), onDismissed: (direction) { // يتم إزالة العنصر هنا }, );
“اقرأ أيضاً: شرح استخدام ويدجت PositionedTransition في فلاتر“
الخاصية child
تحدد عنصر واجهة المستخدم الذي يتم إزالته. يمكن تعيين هذه الخاصية عبر الكود التالي:
Dismissible( child: ListTile( title: Text(item.title), subtitle: Text(item.subtitle), trailing: Icon(Icons.delete), ), onDismissed: (direction) { // يتم إزالة العنصر هنا }, );
الخاصية background
تحدد الخلفية التي يتم عرضها خلف العنصر عند تحريكه. يمكن تعيين هذه الخاصية عبر الكود التالي:
Dismissible( background: Container( color: Colors.red, child: Icon(Icons.delete, color: Colors.white), ), child: ListTile( title: Text(item.title), subtitle: Text(item.subtitle), trailing: Icon(Icons.delete), ), onDismissed: (direction) { // يتم إزالة العنصر هنا }, );
الخاصية secondaryBackground
تحدد الخلفية التي يتم عرضها خلف العنصر بعد الإزالة. يمكن تعيين هذه الخاصية عبر الكود التالي:
Dismissible( background: Container( color: Colors.red, child: Icon(Icons.delete, color: Colors.white), ), secondaryBackground: Container( color: Colors.green, child: Icon(Icons.check, color: Colors.white), ), child: ListTile( title: Text(item.title), subtitle: Text(item.subtitle), trailing: Icon(Icons.delete), ), onDismissed: (direction) { // يتم إزالة العنصر هنا }, );
الخاصية confirmDismiss
تحدد إذا ما كان يجب على المستخدم تأكيد الإزالة قبل القيام بها. يمكن تعيين هذه الخاصية عبر الكود التالي:
Dismissible( confirmDismiss: (direction) async { return await showDialog( context: context, builder: (BuildContext context) { return AlertDialog( title: Text("تأكيد الإزالة"), content: Text("هل تريد بالتأكيد إزالة هذا العنصر؟"), actions: <Widget>[ FlatButton( onPressed: () => Navigator.of(context).pop(false), child: Text("لا"), ), FlatButton( onPressed: () => Navigator.of(context).pop(true), child: Text("نعم"), ), ], ); }, ); }, child: ListTile( title: Text(item.title), subtitle: Text(item.subtitle), trailing: Icon(Icons.delete), ), onDismissed: (direction) { // يتم إزالة العنصر هنا }, );
الخاصية direction
تحدد الاتجاه الذي يتم فيه تحريك العنصر. يمكن تعيين هذه الخاصية عبر الكود التالي:
Dismissible( direction: DismissDirection.startToEnd, child: ListTile( title: Text(item.title), subtitle: Text(item.subtitle), trailing: Icon(Icons.delete), ), onDismissed: (direction) { // يتم إزالة العنصر هنا }, );
الخاصية onDismissed
تحدد الدالة التي سيتم استدعاؤها بعد الإزالة. يمكن تعيين هذه الخاصية عبر الكود التالي:
Dismissible( child: ListTile( title: Text(item.title), subtitle: Text(item.subtitle), trailing: Icon(Icons.delete), ), onDismissed: (direction) { // يتم إزالة العنصر هنا }, );
“اقرأ أيضاً: شرح استخدام ويدجت CircleAvatar في فلاتر“
Dismissible هو عنصر واجهة مستخدم قوي في Flutter يسمح بإزالة العناصر من القائمة أو القائمة المنبثقة أو الجدول بسهولة. يحتوي على العديد من الخصائص التي يمكن تعيينها لتخصيص سلوك الإزالة، بما في ذلك المفتاح الفريد للعنصر، والخلفية التي يتم عرضها خلف العنصر، والاتجاه الذي يتم فيه تحريك العنصر، والدالة التي سيتم استدعاؤها بعد الإزالة. باستخدام Dismissible، يمكن تحسين تجربة المستخدم وجعل الإزالة سهلة وبديهية.