【发布时间】:2016-12-23 08:46:46
【问题描述】:
我的代码是这样的:
FragA >> FragB >> FragC >> FragD
当我按下 FragD 的 onBackpress() 时,它会直接转到 FragA,但我想让它继续运行 FragC。
此处为 BackPress 代码:
if (getActivity().getSupportFragmentManager().getBackStackEntryCount() > 0) {
back_btn.setVisibility(View.GONE);
getActivity().getSupportFragmentManager().popBackStack();
}
替换片段代码:
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
FragmentA fragmentA = new FragmentA();
fragmentTransaction.replace(R.id.framelayoutinner, fragmentA);
fragmentTransaction.addToBackStack("fragmentA");
fragmentTransaction.commit();
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
FragmentA fragmentB = new Fragmentb();
fragmentTransaction.replace(R.id.framelayoutinner_2, fragmentB);
fragmentTransaction.addToBackStack("fragmentB");
fragmentTransaction.commit();
【问题讨论】:
-
你在做fragment事务的时候用过addtobackstack方法吗?
-
如果您将分片交易添加到Backstack,则无需处理
onBackPressed()中的Backstack。它将由托管片段的 Activity 负责。 -
您使用的是两个容器吗? framelayoutinner 和 framelayoutinner_2
-
如果您也添加 xml 布局会很有帮助。
标签: android android-fragments fragment