ویجت SnackBar

تعداد بازدید ها : 922 بازدید
 ویجت SnackBar

ویجت SnackBar یک کادر باریک در انتهای صفحه نمایش ، نشان داده و متن یا عملی را که مد نظر شماست به مدت محدود به نمایش می گذارد . مدت نمایش این متن توسط خصوصیت duration قابل تنظیم است . در پایان این مدت ، ویجت SnackBar به صورت خودکار محو می شود . قطعه کد زیر نمونه ای از پیاده سازی این ویجت را نمایش می دهد :

navigateAndDisplaySomeMessage(BuildContext context, ChatData chatData) async{
  final ChatData result = await Navigator.push(
      context,
      MaterialPageRoute(builder: (context) => SingleUserChat(userData: chatData))
  );

  Scaffold.of(context).showSnackBar(
    new SnackBar(content: new Text('سلام ${result.userName}'),duration: Duration(seconds: 1),)
  );
}

در مثال فوق ما یک تابع به نام navigateAndDisplaySomeMessage از نوع async ایجاد کردیم تا قادر باشد توسط await مدیریت Navigator.push را انجام داده و به محض دریافت نتیجه بازگشتی آن را در ویجت SnackBar به نمایش بگذارد .

خروجی کد فوق در شکل زیر دیده می شود :

روش دوم فراخوانی SnackBar

در این روش ابتدا یک کلید از نوع GlobalKey تعریف می کنید و آن را به خصوصیت key ویجت Scaffold متصل می نمایید . سپس در هر جا که لازم بود با استفاده از دستور زیر نسبت به فراخوانی آن و استفاده از آن اقدام می کنید :

// تعریف کلید اختصاصی
var _scaffoldKey = GlobalKey<ScaffoldState>();

// اتصال کلید به ویجت
Scaffold(
   // استفاده از کلید اختصاصی
   key: _scaffoldKey,
   appBar: AppBar(
      title: Text('دریافت مقدار از TextField'),
   ),
)


// فراخوانی کلید و استفاده از آن
_scaffoldKey.currentState.showSnackBar(SnackBar(
   content: Row(
       mainAxisAlignment: MainAxisAlignment.spaceAround,
          children: <Widget>[
             Icon(Icons.favorite_border,size: 25,),
             Text('کاربر گرامی : علی عظیمی ، سلام',style: TextStyle(fontSize: 14),),
       ],
   ),
));

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

می خوانم   کلاس های غیر عملی ( abstract )

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

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

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

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

ارسال یک پاسخ

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

دو × یک =