当fragment使用addToBackStack(null)方法在一个activity中多次点击某个方法时,fragment页面每次都会保存到back stack中,当我按返回键时,它会恢复到相同的页面,如何添加相同的fragment只堆叠一次?
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();
}
});
最佳答案
将Fragment
添加到后台堆栈时,您还应该传递一个TAG
以便能够识别该Fragment
:
.addToBackStack(SettingsFragment.TAG);
在添加 Fragment
之前,您将能够检查此 Fragment
是否已在后台堆栈中使用:
getFragmentMangager().findFragmentByTag(SettingsFragment.TAG);
如果 Fragment
尚未添加,这将返回 null
。
关于android fragment addToBackStack(null) :how to add the same fragment to stack just one time?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14518086/