我正在点击Button
添加一个片段。我不想给一个单独的按钮来删除此片段。所以我怎么能用相同的按钮删除这个片段。
我尝试过了
case R.id.BN_Tab:
Fragment fragment = new Fragment_Tab();
Fragment fragment1 = mManager.findFragmentByTag("TAB FRAGMENT");
if (!fragment.isAdded()) {
mManager.beginTransaction()
.add(R.id.Tabs_Container, fragment, "TAB FRAGMENT")
.commit();
Log.d(TAG, "Tab Fragment is Added");
} else if (fragment1 != null && fragment1.isResumed()) {
mManager.beginTransaction()
.remove(fragment)
.commit();
Log.d(TAG, "Tab Fragment is Removed()" );
}
此方法继续添加相同的片段,并且永远不会触发else if()
块,当我尝试使用Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.Tabs_Container);
查找片段时,它将给出NPE。
答案 0 :(得分:0)
现在这个简单的代码对我有用
case R.id.BN_Tab:
Fragment fragment = mManager.findFragmentById(R.id.Tabs_Container);
if (fragment==null) {
mManager.beginTransaction()
.add(R.id.Tabs_Container, new Fragment_Tab(), "TAB FRAGMENT")
.commit();
} else {
mManager.beginTransaction()
.remove(fragment)
.commit();
}