از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 52 آموزش فلاتر، مدرس به افزودن یک منوی نویگیشن با تب به اپلیکیشن میپردازد. این منو شامل دو گزینه است: بازگشت به صفحه کتگوریز و نمایش غذاهای مورد علاقه. با استفاده از استیت فول، تغییر صفحه انجام میشود و تایتل صفحه به صورت داینامیک نمایش داده میشود. همچنین، مدرس به اصلاح مشکلاتی مانند تکرار تایتل و اسکرول در صفحات مختلف میپردازد.
نکات کلیدی
افزودن منوی نویگیشن با تب برای انتقال بین صفحات اپلیکیشن.
استفاده از استیت فول برای تغییر صفحه و نمایش تایتل داینامیک.
اصلاح مشکل تکرار تایتل در صفحات مختلف.
بهبود تجربه کاربری با اسکرول بهتر در صفحات.
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. بریم سراغ ادامه اپلیکیشنمون. میخوایم یه چیزی
به این اپلیکیشن رو اضافه کنیم. میخوام
این پایین
یه منویی اضافه کنیم که تو اکثر برنامهها
هست و مثلاً یه د تا گزینه بذاریم اینجا.
یه گزینه بذاریم برای اینکه برگرده تو این
صفحه کتگوریز.
یه گزینه هم بذاریم مثلاً برای غذاهای
مورد علاقه. مثلاً یه سری غذاها رو
احتمالاً بعداً حالا انجام میدیم.
مثلا لایک میکنه که اینا بره تو غذای
مورد علاقهش.
خب بریم سراغ این مرحله
که اضافهستو ببندم تو هم بسته شد
برای اینکه بخوام یه همچین کاری بکنیم خب
اصطلاحاً میگم بچهها به این تب بیس
نویگیشن میگم یعنی یه نویگیشنیه که با تب
کار میکنه خب
میام داخل
عذرخواهی میکنم
یه اسکرین جدید اضافه میکنم. اینجا توی اسکرین یکی جدید اضافه میکنم.
اسمشو میذارم مثلاً تبس.
آ درست شد. فلاتل
خب تبز
اسکرین
اکستند میکنم
اینجا بچهها استیت فوله چون ما قراره که
یک چیزی رو تغییر بدیم تو اینجا یعنی
قراره صفحه عوض بشه پس استیت نیاز خواهیم
داشت
استیت فول وجدت
خب ما
بذار این مقدماتشو بنویسم بنویس کتابش
اینم از این قسمت خب بریم سراغ اون پایین ما یه دونه طبیعت
اپ بار میخوایم خب
برای این صفحه هم یعنی فرقی نمیکنه بیایم
اینجا
اینا رو رد کنیم این مقدم با تو بریز ریترن میکنم خب
اسکف فولد بیایم اینجا یه دونه اببار
میذارم
یه اسکرین دیگه خب حالا الان بهتون میگم
اببار اصلاً برای چی میخواید
یه اببار میزنم این اببار من قراره یه
تایتلی داشته باشه
تایتلش داینامیکه یعنی چی یعنی مثلاً من د تا
صفحه دارم دیگه فوریت و کتگوری برم تو
فوریت باید بشه فوریت برم توی کتگوری باید
بشه کتگوریش
اینجا من یه تکستی دارم که فعلاً کلمه
داینامیکو مینویسم بدونم که اینجا قراره
یه چیز داینامیکه باشه
فعلاً
بعد یه بادی دارم بادیمم داینامیکه فعلاً یه س۳ تا نقطه اینجا میذارم تا بعد بیام
سراغش بیایم پایین
گفتم چی لازم داریم تو این صفحهمون یه باتم نویگیشن م لازم داریم باتم نویگیشن
بار خب
که ما تو باتم نویگیشن بارمون د تا آیکون
د تا گزینه داریم که این د تا گزینه وقتی
هر کدومش زده میشه
یه کاری قراره انجام بده میام اینجا
میگم که
بات
نویگیشن بار
خب خب من فعلاً اینو پاک میکنم میام
پایین
یه دونه آن تپ داره زمانی که تپ میشه یه
فانکشنی باید فراخونی بشه
حالا اینو بیایم جلوتر راجع بهش صحبت
میکنیم اینجا بذاریم یه آیتمز گزینههایی
که قراره نمایش بدیم اون پایین ما اینجا د
تا گزینه میذاریم
باتم نویگیشن بار آیتم
یه آیکون میخواد یه لیبل میخواد هر
گزینهای
پس یه دونش میشه کتگوری یه دونشم میشه فیوریتز
آیکون بعد برو تو آیکون از این آیکون آماده
میخواست فکر کنم ست
اینو انتخاب میکنم برای لیبلشم میدم
کتگوری
برای دومی آیکونی که استفاده میکنم از این آیکون
ستارهست
استار معنی فوریسو میده
یه کم اینجا بذاریم اوکی ما گفتیم که
وقتی
اینو این در حقیقت تبا رو میزنیم باید یه
صفحهمون عوض بشه درسته؟ پس من نیاز به یه
این یه استیتی اینجا دارم. خب میام این
بالا
اینجا
یه چیزی تعریف میکنم به نام سلکتد
پیج ایندکس دیفالتشو میذارم صفر.
خب یه فانکشنم ف درست میکنم سلکت
پیج
اینی که د یه ورودی داره که ایندکس اسمش
بعد میاد میگم که ست استیت
سلکتد پیج ایندکسو مساوی میذارم با اون ایندکسی که به عنوان ورودی اومده
حالا کافیه که اینو بیارم بذارم کجا تو آن تپ
و ایندکسو به عنوان ورودی بهش بدم زمانی که من رو این بزنم ایندکسم صفره رو
این بزنم ایندکسم یکه
اینجوری ایندکس من تغییر میکنه
اینجا رو بچهها باید این شکلی بدید اشتباه نشت
به این صورت پس من زمانی که تو این بزنم
میشه ایندکس صفر اینو بزنم ایندکسم میشه ی
این میاد داخل این استیتمو تغییر میده
یعنی اینو مقدارشو تغییر میده
حالا باید چیکار کنم
بیام بگم که اگر ایندکس من صفر بود چیزی
که تو قراره تو این صفحه نمایش بدی صفحه
کتگوریه
اگر ایندکسم یک بود منو هدایت کن به صفحه
فوریتز
حالا صفحه فوریس فعلاً نداریم یه چیزی به
جاش استفاده میکنیم
پس میام اینجا
اکتیو پیج یه چیزی میکنم به نام اکتیو پیج
میگم به صورت پیشفرض تو برابر باش با
کتروز
اسکرین
دیفالتدین باشه اما اگر
سلکتد پیج ایندکس برابر شد با یک یعنی گزینه دوم انتخاب کرده بود در اون صورت
اکتیو پیجم
برابر بذار با مثلاً صفحه میلز فعلاً میلز اسکرین که حالا یه تایتلی داره یه چیزی هم
باید بهش بدیم حالا فعلاً صبر کن
بعد این اکتیو پیجو اینجا میذارم جا سه تا نقطه
که اینو نشون بدم این تایتلمم باید داینامیک بشه یعنی بسته
به اینکه در حقیقت چی باشه باید تغییر
بکنه
اینو تایتلشو بدم اول این میشه فوریز
میریزم چون هنوز من مکانیزمی برای غذاهای مورد علاقه درست نکردم یه آرای خالی میدم
فعلاً فارم این که خالی نباشه اینجا
اینم که خودش همه چیو داره داخل خودش هیچی
پس من یه وریبل دیگه هم لازم دارم کنار اکتیو پیج اکتیو تایتلم میخوام
پیج تایتل اینو میزنم کتگوریز
موقعی که ایندکسم بشه ی میشه فور برید
حالا فقط کافیه که به جای اینو بذارم اینجا
حالا فقط کافیه که من برم توی مینم اینجا به جای اینکه کتگوریو نشون بدم چیو نشون
بدم تبزو نشون بدم تبز اسکرین نشون بدم
د تا گزینه این پایین اضافه شد برم تو فوریس اینو میاره چون آرای خالی دادم اینو
نشون میده اینجا میشه فوریز کتگوریزم میشه
کتگوری د تا ایراد فقط داره بچهها یه
ایراد اول اینکه من تو هر صفحه ۲ تا تایتل
دارم باید یکیشو حذف کنم خب که فوریسه
اینجا دو نگاه کنید بچهها فوریس رنگ
آیکونش میبینید یه حالت نمونم کرم زرد
چیه این داره میرم رو فوریس عوض نمیشه این
همچنان این یکی فعاله این د تا ایرادو
باید مرتفع کنم
قسمت رنگ آسونتر اول میریم سراغ اون اینم اینجا دیگه نیاز نداریم ایمپورتشو
برمیدارم میام توی تبز
اینجا اینجا بعد از این تپ یک اتریبیوتی
داره به نام کارنت ایندکس اینو میذارم
برابر سلکتد پیج ایندکس تمام
یه خش عوض شد بریم سراغ تایتل
برای تایتل
چرا اصلاً ما د تا تایتل داریم بخواد به
خاط اینکه بچهها من اینجا اسکفولد
استفاده کردم خب بعد داخلش گذاشتم اکتیو
پیج درسته خود کتگوری یه اسکفولده دوباره
میلزم یه اسکفولده
اینجام یه اسکفولد من دارم
برای همین د تا اببار میفته رو همدیگه که
این خوب نیست ایناش
حالا چیکار باید بکنم اول میریم سراغ کتگوریست که اون قسمت
راحتتر قضیه اس
تو کتگوریز
این اسکپولدو حذف میکنم فقط گرید ویل رو نگه میدارم یه پرانتزم اینجا اضافهست که
دیگه باید برداشت
همین این برای کتگوریز کافیه
اسکرولم دیگه نمیشه اون مشکل اسکرولمونم حل شده حالا اما توی میل یه ذره از داستان
فرق میکنه
اینجایی که من بخوام اسکفولدو حذف کنم چیزی نمیمونه بچهها خب پس اینجا این
کارو نمیتونم بکنم میام یه کار دیگه
میکنم میگم که تایتل من اجازه داره که
نال هم باشه میتونه تایتل نداشته باشه
صفحه پس اینجا ریکوااردو برای تایتل من
برمیدارم
یه پرانتزم یه علامت از سؤالم اینجا
بذارید بچهها
این معنیش اینه که تایتل میتونه نال باشه
حالا میام یه اینجا
میگم اگر تایتل من
برابر نال بود تو ریترن کن فقط خود کانتنتو
فقط کانتنتو برگردون
اگر نبود اینو به برگردون یه علامت تعجبم
پشت این بذارید
پس اگر تایتل نال بود فقط کد کانتنتو برمیگردون
اگه نال نبود این کار میکنه حالا فقط
کافیه که حالا توی تبز اینجا که دارم میرز
اسکرینو فاس میارم تایتل ندم تایتلو نال
پاس بدم
خب اگه نال باشه تایتل خودشو برمیداره اینو برمیداره عذر میخوام اگه نال باشه
اگه نال نباشه مال خودشو برمیداره
الان میم پشت یه کانستم بذارم چون دیگه چیز داینامیکی ندارم اینجا هیچی داینامیک
ندارم
بریم با همدیگه نگاه کنیم
اینم بعد از د تا مشکلی که داشتیم حل شد. بریم بیایم بداش جلسه بعدی صحبت کنیم.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
با استفاده از استیت فول و ایجاد یک منوی نویگیشن با تب، میتوان انتقال بین صفحات را انجام داد.
با استفاده از استیت فول، تایتل صفحه به صورت داینامیک در اپلیکیشن نمایش داده میشود.
مشکلاتی مانند تکرار تایتل و اسکرول در صفحات مختلف اصلاح شدهاند.
آخرین بهروزرسانی محتوای متنی:
در این دوره جامع و پروژهمحور با فلاتر و دارت از صفر تا صد آشنا میشوید و با ساخت هشت اپلیکیشن واقعی که هر کدام نکات کلیدی و پرکاربرد فلاتر را پوشش میدهد، مهارتهای خود را به سطح بعدی میبرید. آنچه در این دوره یاد میگیرید: مقدمه و نصب ابزارها: آشنایی با فلاتر، دارت و راهاندازی محیط توسعه مبانی دارت و فلاتر: یادگیری سینتکس دارت و ساخت ویجتهای پایه با اپ «تاسانداز (Roll Dice)» غوطهوری در فلاتر: پیادهسازی اپ «کوئیز (Quiz)» برای مسلط شدن بر ساختار و چرخه حیات ویجتها دیباگ و رفع اشکال: تکنیکهای عیبیابی و ابزارهای Flutter DevTools واکنشگرایی و تمینگ: ساخت «Expense Tracker» برای یادگیری ویجتهای تعاملی، موضوعبندی (Theming) و طراحی ریسپانسیو مدیریت وضعیت (State Management): از Provider تا روشهای داخلی دارت با اپ «TODO» و «Meals» مسیریابی بین صفحات: ناوبری پیشرفته با «Meals App» و انتقال داده بین صفحات انیمیشنها و جلوههای بصری: افزودن حرکات پویا و تراکیب انیمیشنی در «Meals App» فرمها و ورودی کاربر: دریافت و اعتبارسنجی اطلاعات با «Shopping List» ارتباط با سرور: ارسال و دریافت HTTP، کار با JSON و REST API در «Shopping List» دسترسی به امکانات بومی دستگاه: استفاده از دوربین و ذخیرهسازی در «Favorite Places» فراخوانی پوش نوتیفیکیشن و چت زنده: ترکیب فلاتر با Firebase برای ساخت اپ چت با اعلان لحظهای بهروزرسانیها و چشمانداز آینده: نکات پایانی، منابع پیشرفته و مسیر یادگیری ادامهدار چرا این دوره؟ پروژهمحور و گامبهگام، مناسب برای تازهکارها و افراد با تجربه متوسط پوشش تمام جنبههای کلیدی: از طراحی رابط کاربری و انیمیشن تا اتصال به سرور و مدیریت وضعیت پیادهسازی چندین اپلیکیشن واقعی که میتوانید به سادگی برای نمونهکار شخصی یا پروژههای شغلی استفاده کنید لینک گیت هاب دوره جهت دسترسی به کد پروژه های هر فصل https://github.com/pistaacademy/flutter 🔔 همین حالا سابسکرایب کنید تا ویدیوهای آینده را از دست ندهید و یادگیری فلاتر را با هم شروع کنیم!