Android 显示/隐藏片段并将其添加到Backback
我有4个菜单选项的菜单。。。每个选项都显示了相应的片段。 我有3个函数来添加、显示和隐藏片段:Android 显示/隐藏片段并将其添加到Backback,android,android-fragments,show-hide,back-stack,Android,Android Fragments,Show Hide,Back Stack,我有4个菜单选项的菜单。。。每个选项都显示了相应的片段。 我有3个函数来添加、显示和隐藏片段: private void addFragment(Fragment newFragment, String fragmentName) { fragmentManager .beginTransaction() .add(R.id.content_frame, newFragment, fragmentName).addToBackStack(null)
private void addFragment(Fragment newFragment, String fragmentName) {
fragmentManager
.beginTransaction()
.add(R.id.content_frame, newFragment,
fragmentName).addToBackStack(null)
.commit();
}
private void hideFragment(Fragment existingFragment) {
if(existingFragment!=null && existingFragment.isVisible()){
fragmentManager.beginTransaction().hide(existingFragment).addToBackStack(null).commit();
}
}
private void showFragment(Fragment existingFragment) {
if(existingFragment!=null){
fragmentManager.beginTransaction().show(existingFragment)
.addToBackStack(null).commit();
}
}
NavitemSwitch逻辑如下所示:
onNavItemSelected(int id) {
switch (id) {
case 1: //option 1 - hide rest of the fragments and show Option1Fragment
hideFragment(option2Fragment);
hideFragment(option3Fragment);
hideFragment(option4Fragment);
if (Option1FragmentDoesnotExist) { //create option1Fragment and add it to FragmentTransaction
option1Fragment = new option1Fragment();
addFragment(option1Fragment,"option1Fragment");
} else
showFragment(option1Fragment);
break;
case 2:
//same as option 1
}
}
我期望发生的事情:
现在发生了什么:
我知道我在后台添加和检索碎片时犯了一些错误。但是,我不确定它到底是什么。我试着把所有这些都作为同一笔交易的一部分。。那力量也起作用了。。另外,我不想替换碎片。。。希望我的问题是对的。。
感谢您的帮助,谢谢 你能试着简化你的结果和你的期望吗?在这一段中很难确定。@Codedroid,如果不复制/粘贴原始问题,您能解释一下您预期会发生什么吗?那么发生了什么?你能详细说明你所说的“菜单”是什么意思,你所说的“碎片作品”是什么意思吗?如果您的原始解释令人困惑,复制并粘贴它可能无助于解释您的需要。我实际上编辑了原始问题以反映我的评论。。。我将再次尝试编辑实际问题,以使其更清晰。。Thanks@Prmths.. 我添加了一些图片来解释这个问题。。现在好点了吗?知道发生了什么事吗?谢谢您是否删除了覆盖的onDestroyView中的任何片段视图?