当片段使用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();
}
});
Run Code Online (Sandbox Code Playgroud)
Ovi*_*tcu 21
将您添加Fragment到Backstack时,您还应该传递一个TAG以便能够识别Fragment:
.addToBackStack(SettingsFragment.TAG);
Run Code Online (Sandbox Code Playgroud)
在添加之前,Fragment您可以使用以下方法检查是否Fragment已经在Backstack中使用了:
getFragmentMangager().findFragmentByTag(SettingsFragment.TAG);
Run Code Online (Sandbox Code Playgroud)
null如果Fragment尚未添加,则返回.
| 归档时间: |
|
| 查看次数: |
17476 次 |
| 最近记录: |