按下时仅删除片段

Aza*_*zak 5 android android-fragments

我创建示例应用程序,以便在用户启动特定活动时向用户显示一些数据,然后单击特定按钮,应用程序启动新片段(现在只将片段添加到活动中)我的问题是当用户单击片段并删除活动并转到父母的活动.使用此代码来做到这一点

android.support.v4.app.FragmentManager fragmentManager = ((FragmentActivity) context).getSupportFragmentManager();
fragmentManager.popBackStack();
Run Code Online (Sandbox Code Playgroud)

当用户单击特定按钮片段并正确返回时,我也会在另一个操作中使用相同的代码.
任何人都可以帮我解决这个问题

小智 11

在创建它们时将片段添加到后台堆栈并onBackPressed在您的活动中覆盖.

添加片段

FragmentManager mFragmentManager = ((FragmentActivity) context).getSupportFragmentManager();
FragmentTransaction ft = mFragmentManager.beginTransaction();
ft.addToBackStack("tag of fragment");
ft.add("your container id", fragment);
ft.commit();
Run Code Online (Sandbox Code Playgroud)

onBackPress

@Override
public void onBackPressed() {
    if (mFragmentManager.getBackStackEntryCount() > 0)
       mFragmentManager.popBackStackImmediate();
    else super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)


小智 2

重写 onBackPressed() 并删除片段。片段的返回堆栈的工作方式不同,因为它存储事务而不是片段。所以不能弹出一个片段而是一个事务