我有Fragment
A允许用户通过点击按钮访问Fragment
B,当在B上执行操作时,用户被重定向到Fragment
C以检索返回A之前的最后一点信息
(A - > B - > C - > A)。
执行此操作后,如果我打开Navigation Drawer
并点击我当前正在使用的Fragment
(A),其内容就会消失,只剩下抽屉本身。
我无法解释背后的原因。
以下是我保留Navigation Drawer
个Fragment
州的方式:
// User clicks on an item in Nav. Drawer, call this method
private Fragment checkFragmentState(int itemId) {
Fragment fragment = null;
switch (itemId) {
// HOME
case R.id.nav_home:
if (home == null) {
fragment = new Home();
home = fragment;
} else
fragment = home;
break;
// SEARCH CARD
case R.id.nav_searchCard:
if (searchCard == null) {
fragment = new SearchCard();
searchCard = fragment;
} else
fragment = searchCard;
break;
}
return fragment;
}
当我的用户点击抽屉中的元素时,我会调用此方法,基本上它会检查是否已创建Fragment
,如果是,则会保存当前存在的元素并将其用于显示。 / p>
什么可能导致这种奇怪的行为?
答案 0 :(得分:0)
每次只需启动一个新实例
// User clicks on an item in Nav. Drawer, call this method
private Fragment checkFragmentState(int itemId) {
Fragment fragment = null;
switch (itemId) {
case R.id.nav_home:
fragment = new Home();
break;
case R.id.nav_searchCard:
fragment = new SearchCard();
break;
default:
fragment = new Fragment();
}
return fragment;
}