我正在使用此代码向我的布局添加Fragment
:
getSupportFragmentManager().beginTransaction()
.replace(R.id.frameLayout, newFragment, newFragment.getClass().getName())
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.commit();
newFragment
是我要展示的新Fragment
。
我用来删除FragmentManager
中的片段的下一个代码:
Fragment fragment = getSupportFragmentManager().findFragmentByTag(newFragment.getClass().getName());
if(fragment != null) {
getSupportFragmentManager()
.beginTransaction()
.remove(fragment)
.commit();
}
但它不起作用!如果我想从FragmentManager
获取与findFragmentByTag
相同的片段,则返回它。
我的问题是如何从Fragment
删除FragmentManager
?
答案 0 :(得分:0)
确保使用import android.support.v4.app.Fragment;
和import android.support.v4.app.FragmentTransaction;
我在MainActivity中的Frame上添加了FirstFragment,与你的方式相同。
getSupportFragmentManager().beginTransaction()
.replace(R.id.myFrame, firstFrag, firstFrag.getClass().getName())
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.commit();
并在Backpress上我使用下面的代码删除该片段 -
@Override
public void onBackPressed(){
Fragment fragment = getSupportFragmentManager()
.findFragmentByTag(firstFrag.getClass().getName());
if(fragment != null) {
getSupportFragmentManager()
.beginTransaction()
.remove(fragment)
.commit();
}
}