switch (v.getId()) {
case R.id.array:
if (fragment != null) {
Fragment fragment = Fragment1.newInstance(serial,"");
getSupportFragmentManager().beginTransaction().remove(fragment)
.commit();
break;
}
else {
Fragment fragment = Fragment1.newInstance(serial,"key2");
getSupportFragmentManager().beginTransaction().add(R.id.arrayFrame, fragment)
.commit();
break;
}
与此同时-片段保留在窗口中。我无法完全删除他
第一次单击后-片段出现在窗口中 第二次单击后(片段已经存在!)-没有任何反应。 为什么?
答案 0 :(得分:1)
正在检查片段是否存在:
if (fragment != null)
此后,您将创建一个新的Fragment fragment = Fragment1.newInstance(serial,"");
并删除它
如果您仍需要帮助,请发布更多代码。
答案 1 :(得分:0)
您要从片段中添加一个新实例,然后尝试删除另一个未添加到片段管理器中的实例,将要添加到片段管理器中的片段对象保持全局,并在需要时删除该对象