我有一个左右两个区域的活动。左侧区域用于导航,右侧用于显示详细信息。 我通过使用片段并将左侧更改添加到Backstack来解决此问题。但是在一个案例中,左边的片段被移除了,尽管我只是替换了正确的片段。
您可以在github上克隆代码:https://github.com/Ben-Ho/fragmentProblem
执行以下操作以重现问题:
片段D也是如此,但是在第一次单击片段C然后单击片段D时不会发生。
我没有将碎片C和D添加到backstack,因为我想在用户点击后退按钮时只切换左边区域...
左侧区域绝不能为空。它应该通过点击"打开片段B"在片段A和B之间切换。和Android Back-Button。
你能告诉我我做错了什么吗?
答案 0 :(得分:0)
然后在你的包含Activity覆盖onBackPressed():
@Override
public void onBackPressed() {
if (getSupportFragmentManager().findFragmentByTag("FragmentC") != null) {
// I'm viewing Fragment C
} else {
super.onBackPressed();
}
}
答案 1 :(得分:0)
好的,我没有找到一个不像黑客的解决方案...... 所以这是我解决这个问题的方法:
有关完整代码,请参阅此提交:
https://github.com/Ben-Ho/fragmentProblem/commit/f08192098be7187d5f4bf08e8119ce58e60fbecc