android fragment addToBackStack(null) :how to add

2020-02-08 08:19发布

when fragment use addToBackStack(null) method and click a method many times in an activity, the fragment page will save to back stack everytime, when I press back key, it will restore the same page, how to add the same fragment to stack just one time?

    mSettingBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            SettingFragment settingFragment = new SettingFragment();

            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
            transaction.replace(R.id.left_framelayout, settingFragment);
            transaction.addToBackStack(null);
            transaction.commit();
        }
    });

1条回答
萌系小妹纸
2楼-- · 2020-02-08 09:07

When adding your Fragment to the backstack you should also pass a TAG to be able to identify that Fragment:

 .addToBackStack(SettingsFragment.TAG);

Prior to adding the Fragment you will be able to check if this Fragment is allready in the backstack using :

 getFragmentMangager().findFragmentByTag(SettingsFragment.TAG);

This will return null if the Fragment is not allready added.

查看更多
登录 后发表回答