ویجت 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),),
],
),
));
جهت کسب اطلاعات بیشتر از این آدرس به سایت اصلی فلاتر مراجعه نمایید .
امیدوارم این مطلب برای شما مفید باشد .

