رونمایی از پخته‌ترین و کاربردی‌ترین محصولات آموزشی سون‌لرن با کلی آفرهای ویژه🔥
۰ ثانیه
۰ دقیقه
۰ ساعت
۵ علیرضا صادقي رونیزی
صفحه OnBoarding فقط بعد از نصب نشان داده شود
جامعه فلاتر ایجاد شده در ۱۷ فروردین ۱۴۰۲

من توی صفحه splash یه متغیر بولین تعریف کردم که true هستش و در initState یک شرط نوشتم که اگر true بود صفحه OnBoarding رو بیار و اگر نه صفحه Home و قبل از اینکه صفحه OnBoarding رو بیاره به وسیله فانکشن setState متغیر رو false میکنه ولی هر وقت صفحه لود میشه چه در بعد از نصب و چه بعد از اون باز صفحه OnBoarding لود میشه.

سلام.

متغیر رو جایی ذخیره می‌کنید؟ مثل shared pref یا ..

یلدا محصلی ۱۷ فروردین ۱۴۰۲، ۱۷:۵۱

shared pref ?

نمیدونم کجاست ولی توی کلاس متغییر رو تعریف میکنم

علیرضا صادقي رونیزی ۲۱ فروردین ۱۴۰۲، ۲۲:۵۵

شما باید از یک محل ذخیره سازی لوکال مثل Shared Preferences استفاده کنید و یه متغیر بولین داشته بشید بتونید چک کنید صفحه آنبوردینگ دیده شده یا نه.

در صفحه قبل از آنبوردینگ (بعنوان مثال Splash) این شرط رو می‌تونید اضافه کنید.

مهرداد فدایی ۲۲ فروردین ۱۴۰۲، ۰۸:۱۹

اگر میشه کارکردش رو توی همین کد توضیح بدید13b8-Screenshot (7).png

علیرضا صادقي رونیزی ۲۳ فروردین ۱۴۰۲، ۱۹:۴۶

شما در ابتدا با پکیج رو اضافه کنید به پروژتون. بعدش طبق نمونه کدهایی برای همین پکیج نوشته شده، یک bool ذخیره کنید.

final bool? isFirstRun = prefs.getBool('is-first-run');

در صورتی که مقدار این متغیر نال باشه یا true نباشه ، یعنی بار اول هست که اپ اجرا میشه. از این طریق میتونید OnBoarding رو نمایش بدید. ضمن اینکه باید مقدار این متغیر رو مثلا true کنید که در اجراهای بعدی اون صفحه نمایش داده نشه.

await prefs.setBool('is-first-run', true);

اسم کلید هم کاملا اختیاری هست.

یلدا محصلی ۲۳ فروردین ۱۴۰۲، ۲۱:۵۴