Gray Mind 913 ارسال شده در 13 آذر، ۱۳۹۶ اشتراک گذاری ارسال شده در 13 آذر، ۱۳۹۶ با سلام دوستان اگه شما هم جزو کسایی باشید که از فرگمنت ها زیاد استفاده میکنن حتما شده که بخواید توی فرگمنت از رویداد onBackPressed استفاده کنید ولی چون همچین متدی توی فرگمنت وجود نداره نمیتونید همچین کاری رو انجام بدید البته راه هایی هست ولی پیچیده هست و حوصله میخواد یه کتابخانه پیدا کرده بودم چند وقت قبل گفتم اینجا هم بذارم که دوستان استفاده کنن برای استفاده از این کتابخانه چندتا راه وجود داره که من راحت ترینشو براتون توضیح میدم لینک گیت ها : https://github.com/skoumalcz/fragment-back کد دپندنسی گریدل : compile 'net.skoumal.fragmentback:fragment-back:0.2.3' خوب بعد از اضافه کردن کد بالا به گریدل و سینک شدنش میاید و توی اکتیویتی که فرگمنت توش نشون داده میشه در رویداد onBackPressed این کد رو بذارید if(!BackFragmentHelper.fireOnBackPressedEvent(this)) { // lets do the default back action if fragments don't consume it super.onBackPressed(); } با اضافه کردن کد بالا میگیم که اگه onBackPressed توی فرگمنت صدا زده نشده باشه کدارو اجرا کن خوب حالا بخش اصلی کار رو باید انجام بدیم و اونم اینه که فرگمنت رو ایمپلمنت کنیم به شکل زیر //قبل public class MyFragment extends Fragment { } //بعد public class MyFragment extends Fragment implements BackFragment { } خوب حالا باید این دوتا رویداد رو به کدای فرگمنت اضافه کنید public boolean onBackPressed() { // وقتی توی فرگمنت کلید بک رو میزنید کدایی که اینجا نوشتین اجرا میشه return false; } public int getBackPriority() { // use apropriate priority here return 0; } یه چیز دیگه هم که باید خدمتتون بگم اینه که در رویداد onBackPressed که بالا به فرگمنت اضافه کردیم یه مقدار برگشتی داریم به نوع boolean این مقدار کارش اینه که اگه مقدار رو false بذارید اکتیوتی که داخلش هستین کاملا بسته میشه اما اگر مقدارش رو true بذارید بدون بسته شدن اکتیویتی حال حاضر کارشو انجام میده(مثلا برای برگشت از یه فرگمنت به فرگمنت دیگه توی یه اکتیویتی به کار میره) خوب حالا اگه از پروژه تون ران بگیرید و شاهد کار این کتابخانه ی فوق العاده باشید لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.