Android的碎片addToBackStack(空):如何添加相同片段堆叠只是一个时间呢?只是一个、碎片、片段、时间

2023-09-04 23:09:27 作者:女人就该有国际范

在片段使用addToBackStack(空)方法,并单击一种方法多次在一个活动,该片段页面会保存到备份堆栈每次,当我preSS返回键,它就会恢复同一个页面,怎么加相同的片段堆叠只是一个时间?

  mSettingBtn.setOnClickListener(新OnClickListener(){

        @覆盖
        公共无效的onClick(视图v){
            SettingFragment settingFragment =新SettingFragment();

            FragmentTransaction交易= getFragmentManager()的BeginTransaction()。
            transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
            transaction.replace(R.id.left_framelayout,settingFragment);
            transaction.addToBackStack(空);
            器transaction.commit();
        }
    });
 

解决方案 Google 正在解决Android碎片化新闻频道

在添加你的片段的backstack你也应该传递标记要能够识别片段

  .addToBackStack(SettingsFragment.TAG);
 

在此之前添加片段,你将能够检查这个片段是媒体链接中使用backstack:

  getFragmentMangager()findFragmentByTag(SettingsFragment.TAG)。
 

这将返回如果片段不是媒体链接添加。

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

解决方案

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.

 
精彩推荐
图片推荐