在片段使用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();
}
});
解决方案
在添加你的片段
的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.