آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

طبقه بندی موضوعی

مدیریت بک استک در اپ بلاگ

يكشنبه, ۲۵ آبان ۱۳۹۹، ۰۸:۲۶ ب.ظ

مشکلی که توی اپ بلاگ داشتم این بود که اگر کاربر بیشتر از یک بار روی فرگمنت میزد، همه دفعات در استک ثبت میشد و اگر بک رو میزدیم به همون تعداد پاپ میشد که خب زیاد جالب نیست!

 

برای حل این مشکل قبل از قرار گرفتن فرگمنت، بررسی میکنیم آیا فرگمنت فعلی همون فرگمنت ورودی هست یا نه. اگر بود توی استک ادش نمیکنیم. کدش:

 

public void changeFragment(Fragment fragment, String toolbarTitle, boolean fabVisibility) {

    Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container);

    if (currentFragment != null) {

        if (fragment.getClass().equals(currentFragment.getClass())) {
            return;
        }
    }

    /*
        fragment one does not put in back stack
     */

    if (fragment instanceof HomeFragment) {
        getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.fragment_container, fragment)
                .commit();

    } else {
        getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.fragment_container, fragment)
                .addToBackStack(null)
                .commit();
    }

    getSupportActionBar().setTitle(toolbarTitle);

    fab_add_post.setVisibility((fabVisibility) ? View.VISIBLE : View.INVISIBLE);


}
موافقین ۰ مخالفین ۰ ۹۹/۰۸/۲۵
میم دال

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی