12

フラグメントが addToBackStack(null) メソッドを使用し、アクティビティでメソッドを何度もクリックすると、フラグメント ページは毎回バック スタックに保存されます。戻るキーを押すと、同じページが復元されます。同じフラグメントをスタックに追加する方法一度?

    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();
        }
    });
4

1 に答える 1

21

バックスタックにを追加するときは、それを識別できるようにFragmentaも渡す必要があります。TAGFragment

 .addToBackStack(SettingsFragment.TAG);

追加する前に、以下を使用して、これがバックスタックにすでに存在Fragmentするかどうかを確認できます。Fragment

 getFragmentMangager().findFragmentByTag(SettingsFragment.TAG);

がまだ追加されていないnull場合は、これが返されます。Fragment

于 2013-01-25T09:02:33.377 に答える