2014-07-04 123 views
1

我有一个活动,有两个区域,左侧和右侧。左侧区域用于导航并显示细节的权限。 我正在解决这个问题,通过使用片段并将左侧更改添加到后台堆栈。但在单个案例中,左边的片段被删除,尽管我只是替换了正确的片段。片段替换删除其他片段

您可以克隆GitHub上的代码:https://github.com/Ben-Ho/fragmentProblem

执行以下操作来重现问题:

  1. 开始应用
  2. 点击 “打开片段B”
  3. 点击“打开C片段“
  4. Click Android Back-Button
  5. Click”Open Fragment B“
  6. 点击“打开C片段”
  7. 现在左片段走了,但不应该

的情况与此相同片段d,而不是首先单击C片段时,然后单击片段D.

我没有添加片段C和D到backstack,因为我想在用户单击后退按钮时仅切换左侧区域...

左侧区域不能为空。它应该通过单击“打开碎片B”和Android后退按钮在片段A和B之间切换。

你能告诉我我做错了什么吗?

回答

0

然后在你的含有活动覆盖onBackPressed():

@Override 
public void onBackPressed() { 
    if (getSupportFragmentManager().findFragmentByTag("FragmentC") != null) { 
    // I'm viewing Fragment C 

    } else { 
    super.onBackPressed(); 
    } 
} 
+0

我不想实现手动切换是否有可能与Android堆栈中做到这一点。 .. –

+0

问题是FragmentB被删除。 –