【发布时间】:2017-12-18 13:58:20
【问题描述】:
我使用这些行来删除片段,我在最后得到日志但是这两行不起作用
DPFragment 片段 = 新的 DPFragment(); getSupportFragmentManager().beginTransaction().remove(frag).commit();
这是我使用选项卡列表器的 MainActivity
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
if(isActiveFrame){
DPFragment frag = new DPFragment();
getSupportFragmentManager().beginTransaction().remove(frag).commit();
isActiveFrame =false;
}else
{
}
}
这是我的 ActivityMain.xml
<FrameLayout
android:id="@+id/fl_main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.myproject.externals.CustomViewPager
android:id="@+id/vp_CustomViewPager"
android:layout_height="match_parent"
android:layout_width="match_parent" />
</FrameLayout>
我用这条线来加载片段
getFragmentManager().beginTransaction().replace(R.id.fl_main, new DPFragment()).addToBackStack(null).commit();
【问题讨论】:
-
您正在删除该 DPFragment 的另一个实例,因此您需要保持片段全局以便之后将其删除。
-
当我给出这一行“getFragmentManager().beginTransaction().remove(getFragmentManager().findFragmentById(R.id.fl_main)).commit();”时,我得到了错误 java。 lang.NullPointerException:尝试写入空对象引用上的字段“int android.app.Fragment.mNextAnim”@tebitoq
-
DPFragment是框架片段还是支持片段?似乎您正在使用框架FragmentManager添加它并使用支持FragmentManager删除它。这不起作用 -
@bwt 我同时使用支持框架管理器
标签: android android-fragments fragmentmanager android-framelayout