处理片段导航的最佳实践?

时间:2015-06-15 06:26:58

标签: android android-fragments

我有一个简单的活动,我在布局中只有一个框架。该活动有3个片段:

  1. 搜索字段
  2. 结果列表
  3. 细节
  4. 我创建第一个片段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();
        }
    }
    

    以上代码是否是处理导航的正确方法,还是有更好,更清晰的方法来执行此操作?

1 个答案:

答案 0 :(得分:0)

当您将片段添加到活动时,您只需添加addToBackStack(null),这将导致您的后退按钮将片段弹出到上一个片段,在这种情况下不需要覆盖此方法。

此外,如果您使用replace方法放置片段,则效果很好,如果您使用add方法放置片段,如果之前没有出现片段,则可能会导致空白屏幕

使用replace会导致活动在弹出最后一个片段时退出