از Pista Academy حمایت کنید
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 47 آموزش فلاتر، مدرس به بررسی نحوه انتقال کاربر به صفحه لیست غذاها از طریق یک دکمه در صفحه کتگوری پرداخته است. این فرآیند شامل نوشتن یک متد در ویجت استیتلس، استفاده از نویگیتور و پاپ برای تغییر صفحه، و ارسال کانتکست به عنوان ورودی به متد میباشد. همچنین، مدرس به نحوه فیلتر کردن لیست غذا بر اساس کتگوری اشاره کرده و نشان داده است که چگونه با استفاده از یک فیلتر، غذاهای مرتبط با کتگوری انتخاب شده نمایش داده میشوند.
نکات کلیدی
نوشتن متد در ویجت استیتلس برای انتقال کاربر به صفحه لیست غذاها با استفاده از نویگیتور و پاپ.
استفاده از کانتکست برای ارسال اطلاعات به متد و فیلتر کردن لیست غذا بر اساس کتگوری انتخاب شده.
نحوه نمایش غذاهای مرتبط با کتگوری انتخابی با استفاده از فیلتر در لیست غذاها.
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. خب بریم سراغ ادامه
پروژهمون. جلسه قبلی ما چیکار کردیم؟
اومدیم
صفحه لیست غذاها رو نشون دادیم. خب برگردم
با همون حالت قبل. اینجا رو من مینمو درست
کنم. اول اینو بردارم برگردم رو همون
کتگوری اسکرین.
اسکرین میلو دیگه اینجا نیارم
دامی رمگردم
روم حالت قبل خب اینو یه رفرش کنم مطمئن
شم درسته
خب من وقتی قراره رو این کلیک میکنم یه
فانکشن یه متدی اجرا بشه و این متده چیکار
میکنه؟ متوده میاد منو هدایت میکنه به
صفحه لیست غذاها
و اونجا میتونم در حقیقت لیست غذا رو
ببینم. خب بریم اون متده رو بنویسیم. اول
من هم تو همین
بیام توی اینو ببندم
توی کتگوری اینجا باید بنویسم متده رو چون
اینجا قراره این اتفاق بیفته.
کجا مینویسم؟ اینجا
اولین بارم از این کارو میکنیم که ما توی
یه دونه ویجت استیتلس میخوایم متد بنویسیم
متدو قری چیزی برگردونه
اسمشو میذارم سلکت
کتگوری
قراره چیکار کنه منو جابهجا کنه توی صفحه دیگه پس نوی چیز یه چیز داریم به نام نوی
گیتور
نویگیتور یه چیز داره به نام پاپ یه چیز داره به نام پوش پوش مال زمانی که شما
میخواید برید به یک صفحه پاپ مال موقعی
که میخواید از اون صفحه بیاد بیرون پس من
میخوام میذارم اینجا پوش منو پوش کن به
یه صفحهای پاپ و پوش چه فرقی با هم داره
بذارین اینم نشونتون بدم بد نیست
بچهها ذاتاً فلاتر اینجوری کار میکنه نگاه کنید فرض کنید این محیط شماست
خب شما تو یه صفحهای هستید وقتی نویگیت میکنید میاد چیکار میکنه؟ یه صفحه پوش
میکنه رو این
وقتی از اینم نویگیت کنید برید یه صفحه
دیگه دور یکی دیگه پوش میکنه حالا وقتی
پاپ میکنید خب چه اتفاقی میفته؟
برمیگردونه به حالت قبل.
یه پاپ دیگه بکنید برمیگردید به قبلی.
انگار که این صفحات رو اسکرینا رو همدیگه
به صورت استک گذاشته. خب بعد دونه دونه
وقتی میخواید برگردید برمیداره. لایهها
رو برمیداره. این یه همچین چیزیه بچهها.
خب برگردم اینجا.
خب این پوش بچهها د تا ورودی داره. خب یه
دونه کانتکست میخواد
یه دونههم روت میخواد من چی رو کجا نمایش
بدم اگه ب خیلی ساده بگم خب حالا
سؤال اینجاست که من اینجا به کانتکست دسترسی ندارم بچهها کانتکست اینجاست من
اینجا بهش دسترسی ندارم این نکته اول
چیکار کنیم
میتونم کانتکستو به عنوان ورودی بدم به
یعنی همین بیلد کانتکستو مث دقیقاً مثل
همین بچهها به دنبال ورودی بدم به اینکه
مشکل این حل بشه. خب یعنی هر جا من این
متدو قرار بود فراخونی بکنم کانتکستو بهش
پاس بدم. بچهها اینم میتونید این مدلی
هم بنویسید فرقی هم نمیکنه. جفتش یکیه آف
کانتکست.
پوش فقط روت اینجا بنویسید. این مدلی هم
بنویسید. هیچ فرقی نمیکنه با اون قبلیه.
جفتش یکیه.
خب حالا روت باید چیکار کنیم؟ برای روت ما
یه چیزی داریم
متریال پیج روت خودش پیشنهاد داد که یه بیلدر به عنوان ورودی دریافت میکنه. خب
حالا
بیلدرمون قراره چی درست کنیم بچهها؟ وقتی این دکمه رو میزنم این متده میاد باید
صفحه میلو برا من درست کنه درسته؟ خب میام
میگم که تو بیلدر
سیتی ایکس
تو بیا میل اسکرینو بیا برای من خودکارم این بالا خودش ایمپورت کرد میل اسکرینم یه
تایتل داره یه لیست غذا به عنوان ورودی
میخواد درسته
یه تایتل میخواد یه لیست غذا میخواد
فعلاً من تایتل یه چیزم الکی میذارم
تایتل لیست غذا رو می خالی آ فعلاً آرای خالی
یه ویلگول یه ویلگول یه ویلگول
حالا من بچهها این متده رو باید کجا استفاده کنم
متوده رو باید ببرمش اینو توی کتگوری گرید آیتم اینجا استفاده کنم کجا
اینجا
پس به عنوان ورودی باید داشته باشمش دیگه
درسته پس اینجا می فاینال تعریف میکنم
فاینال
وید
فانکشن اسمشم میذارم
آن
سلکت کتگوری یه اسش میذارم
طبیعتاً باید اینجا هم تعریفش کنیم تو کانستراکتور
دیز. این
به این شکل خب حالا اینو من کجا فراخونی کنم؟ تو اون
آن تپ قبلش اول باید اینو به عنوان ورودی
بدم دیگه درسته؟
به عنوان ورودی باید اینو بدمش.
میام اینور. اینجا وقتی دارم میرم توی گرید آیتم میگم
که تو به عنوان ورودی یه چیزی لازم داری
به نام آن سلکت کتگوری
این کلشو میارم
و اینجا به جای اینجا به جای این اینو میذارم تا
اینجاشو بریم ببینیم
دقیقاً منو برد تو یه صفحهای فعلاً چون لیست غذا رو نداده بودم این جمله رو نشونم
میدم خیلی هم عالی
یه انیمیشن باحالی هم داره
خب بریم حالا لیست غذا روم درست بکنیم
اینجا زمانی که داره این فراخونی میشه این
بدبخت باید یه کتگوری به عنوان ورودی
داشته باشه خب پس یه ورودی داره از جنس
کتگوری
خودکارم ایمپورتش میکنیم بالا مدلشو
اسمشم میذاریم کتگوری پس یه کتگوری هم به
عنوان ورودی میخواد حالا این کتگوری
چیکارش میکنه میره توی این لیست غذایی که
من دارم اینجا اینجا تو این لیست غذا میره
فیلتر میکنه فقط غذاهای اون کتگوریو
میاره یعنی میگم که برو تو این لیست غذائه
خب ببین اونایی که کتگوریشون
شبیه اونه اون هست اون غذا رو بیار اون
نیستو نیار حالا چهجوری این کارو باید
بکنیم
اینجا
یه حرکتی باید بزنیم من لیست غذا رو دارم
دیگه چون ایمپورتش کردم درسته دامی میلزو
دارم
خب میخوام روش یه فیلتر بزنم با ور این
کارو میکنم
خب
بعد میگم که
برو به ازای هر غذایی که داخل این لیست
غذا هست. چک کن ببین کتگوریش
آیا برابر این کتگوری هست یا نه؟ پس میام
اینجا میگم برو تکتک غذاهاشو نگاه کن
ببین اون غذائه
داخل کتگوریزش چون یه لیست از کتگوریه
دیگه آیا شامل
کتگوری ما
آیدیش هست یا نه چون آیدیا رو ذخیره کردن
خب
اگر بود اینو برامون برگردون
یه اسمی هم براش بذاریم فقط تبدیلش کنید به لیست بچهها در انت تو لیست این حتماً
تبدیل بشه تو لیست بعد اینو ذخیره کن تو
یه چیزی
مثلاً
فیلتر
فیلتر
مینز
این فیلتر مینوز باید کجا ببرم اینجا به جای این آرایه فیلتر مینوزو پاس بدم
تایتلم چی باید بذارم؟ تایتلم میشه این
کتگوری تایتلش.
خب حالا من اینجا که دارم سلکتد کتگوری فراخونی میکنم کانتکستو پاس دادم این
کتگوری هم باید بهش پاس بدم.
اینجا دسترسی دارم خدا شکر میاد اینجا
فیلتر میشه اونجا نمایشش میده
عذر میخوام
بریم تا اینجا رو ببینیم
یه دونه غذا بیشتر نداشتیم مثلاً آسیایی یه دونه داریم فرنچ یه دونه
داریم ایتالیایی یه دونه داریم
این چند تا داشتیم چار تا داریم و الی آخر
داره کار میکنه خیلی خب اینم از این بریم
بیایمش جلسه بعدی صحبت کنیم فعلاً خداحافظ
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
با نوشتن یک متد در ویجت استیتلس و استفاده از نویگیتور و پاپ برای تغییر صفحه.
با استفاده از کانتکست ارسال شده به متد و اعمال فیلتر بر لیست غذا.
آخرین بهروزرسانی محتوای متنی:
در این دوره جامع و پروژهمحور با فلاتر و دارت از صفر تا صد آشنا میشوید و با ساخت هشت اپلیکیشن واقعی که هر کدام نکات کلیدی و پرکاربرد فلاتر را پوشش میدهد، مهارتهای خود را به سطح بعدی میبرید. آنچه در این دوره یاد میگیرید: مقدمه و نصب ابزارها: آشنایی با فلاتر، دارت و راهاندازی محیط توسعه مبانی دارت و فلاتر: یادگیری سینتکس دارت و ساخت ویجتهای پایه با اپ «تاسانداز (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 🔔 همین حالا سابسکرایب کنید تا ویدیوهای آینده را از دست ندهید و یادگیری فلاتر را با هم شروع کنیم!