我正在像下面为我的应用程序编写的代码一样工作:-
步骤1:Fragment Activity->在启动活动时使用以下代码在上面添加Fragment A。
Fragement_Home home = new Fragement_Home();
FragmentManager manager = getSupportFragmentManager();
manager.beginTransaction().replace(R.id.frameContent, home).commit();
第2步:在那之后,我希望它上的另一个片段从上一个片段的上下滑动,为此我编写了以下代码:
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Fragment_Menu next = new Fragment_Menu();
ft.setCustomAnimations(R.anim.slide_down, R.anim.slide_up);
ft.add(R.id.frameContent, next);
ft.addToBackStack("Menu");
ft.show(next);
ft.commit();
动画按要求出现。但是,当我想删除步骤2中添加的"NEXT"片段时,动画根本没有显示。我现在想把它从下行向上行展示。
步骤3:去除步骤2中添加的片段
ft.setCustomAnimations(R.anim.slide_up, R.anim.slide_down);
ft.remove(next);
ft.commit();
fm.popBackStack();
片段会立即移除,并且根本不会发生任何动画。请告诉我哪里错了,我已经试过好几次了。
尝试使用此函数。在这里,您可以设置从后堆栈弹出的动画
setCustomAnimations(int enter,int exit,int popEnter,int popExit)
正如文档所描述的…
设置特定的动画资源,以便为在此事务中进入和退出的片段运行。popEnter和popExit动画将用于进入/退出操作,特别是在弹出后堆栈时。