[Android] ما معنى addToBackStack مع المعلمة الخالية؟



Answers

إجاباتك موقوفة. إذا كنت لا ترغب في إضافة أجزاء إلى مكدس إلى الخلف ، فيجب استخدام جزء من التعليمات البرمجية أدناه:

    public static void replaceFragment (@NonNull FragmentManager fragmentManager,
            @NonNull Fragment fragment,int frameId){

        checkNotNull(fragmentManager);
        checkNotNull(fragment);
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(frameId, fragment);
        transaction.disallowAddToBackStack(); // <-- This makes magic!
        transaction.commit();
    }

أدناه لديك مثال لطيف كيفية استخدامه:

GameFragment fragment = GameFragment.newInstance(mGameObject, currentQuestion);
ActivityUtils.replaceFragment(getFragmentManager(), fragment, R.id.main);
Question

لدي رمز العميل. لا يوجد سوى نشاط واحد لجميع الأجزاء ، أي أن النشاط المنفرد هو إدارة جميع الأجزاء.

يحتوي هذا النشاط على التعليمة البرمجية التالية لأي جزء في نهاية الأسلوب الخاص بتلك الأجزاء

على سبيل المثال - fragment MoreFragment:

MoreFragment firstFragment = new MoreFragment();
getSupportFragmentManager().beginTransaction()
.replace(R.id.article_fragment, firstFragment)
.addToBackStack(null).commit();

وبالتالي،

1) ما معنى addToBackStack(null) متبوعًا addToBackStack(null) commit() ؟

2) لماذا تحتاج إلى تمرير معلمة فارغة إلى addToBackStack ؟

3) كيف تحصل على هذه الشظية بعد إضافتها هكذا؟

يبدو أن هذا الرمز لا فائدة منه حيث قمت بتشغيل الكود بدون السطر الأخير .addToBackStack(null).commit() وركض دون أي مشاكل.






Links