使用动画删除片段



我正在像下面为我的应用程序编写的代码一样工作:-

步骤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动画将用于进入/退出操作,特别是在弹出后堆栈时。

最新更新