我有一个简单的活动,我在布局中只有一个框架。该活动有3个片段:
我创建第一个片段onCreate
,然后在需要时使用侦听器模式创建其他2个片段。我跟踪当前片段。一切都像它应该的那样。
目前,为了处理导航,我在活动中有以下代码:
@Override
public boolean onNavigateUp() {
if (currentFragment == detailsFragment) {
currentFragment = listFragment;
getFragmentManager().popBackStack();
return true;
}
else if (currentFragment == listFragment) {
currentFragment = searchFragment;
getFragmentManager().popBackStack();
return true;
}
else {
return super.onNavigateUp();
}
}
以上代码是否是处理导航的正确方法,还是有更好,更清晰的方法来执行此操作?
答案 0 :(得分:0)
当您将片段添加到活动时,您只需添加addToBackStack(null)
,这将导致您的后退按钮将片段弹出到上一个片段,在这种情况下不需要覆盖此方法。
此外,如果您使用replace
方法放置片段,则效果很好,如果您使用add
方法放置片段,如果之前没有出现片段,则可能会导致空白屏幕
使用replace
会导致活动在弹出最后一个片段时退出