Widget چیست؟
در محیط فلاتر نام Widget را زیاد می شنوید . اما یک ویجت چیست ؟ ویجت ها در واقع همان کلاس ها هستند که با کمک آنها ما نسبت به طراحی و ایجاد UI برنامه اقدام می کنیم . هر ویجت به همراه خود امکاناتی را به کد برنامه ما اضافه می کند که ما با استفاده از این امکانات به راحتی می توانیم نسبت به طراحی و ایجاد UI مورد نظر خود اقدام نماییم .
به عنوان مثال ویجت Text به ما امکان نمایش یک متن را می دهد ، همچنین نوع فونت ، سایر فونت ، رنگ قلم و سایر تنظیمات مرتبط با متن و قلم را نیز به همراه خود ارائه می دهد . به قطعه کد زیر توجه نمایید :
class MyTextWidget extends StatelessWidget { @override Widget build(BuildContext context) { return Text( 'Hello World !', style: TextStyle( color: Colors.blueAccent, // تعیین رنگ متن fontFamily: 'Vazir', // تعیین نوع قلم fontSize: 14, // تعیین سایز قلم fontWeight: FontWeight.w700, // تعیین ضخامت قلم ), ); } }
در مثال فوق ، ما یک ویجت شخصی از نوع StatelessWidget با نام MyTextWidget ایجاد کرده ایم که در آن یک ویجت Text بازگشت داده می شود . در این مثال Text یک ویجت است در حالی که در خصوصیت style خود از امکانات یک کلاس به نام TextStyle استفاده می نماید . تنها تفاوت بین ویجت Text و کلاس TextStyle در این است که ویجت ها قابلیت نمایش مستقیم در خروجی را دارند در حالی که کلاس ها توسط خصوصیات یک ویجت مورد استفاده قرار می گیرند و به صورت مستقیم قابلیت ارسال به خروجی را ندارند .
ما از ترکیب چندین ویجت با یکدیگر قابلیت ساخت ویجت های شخصی خودمان را نیز داریم .
ویجت ها دارای دو نوع StatelessWidget و StatefulWidget هست . در صورتی که یک ویجت در طول برنامه نیاز به تغییر نداشته باشد و محتوای آن از لحظه نمایش تا انتها ثابت باشد ، از نوع StatelessWidget ایجاد می گردد در حالی که از محتوای آن نیاز به تغییر دارد باید از نوع StatefulWidget تعریف گردد . در این رابطه مطالعه این مقاله را توصیه می کنم :
جهت کسب اطلاعات بیشتر از این آدرس به سایت اصلی فلاتر مراجعه نمایید .
امیدوارم این مطلب برای شما مفید باشد .