活动默认加载的片段的转换

3

我有一个活动,默认情况下在它的FrameLayout中加载了一个片段。我已经设置了片段的进入和退出转换,如下所示:

HomeFragment homeFragment = new HomeFragment();
homeFragment.setEnterTransition(enter);
homeFragment.setExitTransition(exit);
getSupportFragmentManager().beginTransaction().replace(R.id.vg_full_container,homeFragment).commitAllowingStateLoss();

但是当我的活动启动时,该片段没有显示任何过渡效果。然而,如果我使用FragmentTransaction的setCustomAnimation(),该片段将动画显示在屏幕上。此外,通过某些事件(如OnClick()等)触发加载的片段,在同一活动中,可以使用setEnterTransition()setExitTransition()进入屏幕。但是,活动默认加载的片段没有过渡效果,或者至少我看不到任何过渡效果。另外,我没有在加载此片段的活动中设置任何进入和退出过渡效果。
如何让默认加载的片段使用setEnterTransition()setExitTransition()进行过渡?
以下是过渡XML文件:
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
   <slide
       android:duration="400"
       android:slideEdge="left" />
   <targets>
       <target android:excludeId="@id/toolbar"/>
       <target android:excludeId="@id/collapsing_toolbar"/>
       <target android:excludeId="@id/transaction_toolbar"/>
       <target android:excludeId="@id/tab_layout"/>
   </targets>
</transitionSet>
1个回答

1

try this:

getSupportFragmentManager()
    .beginTransaction()
    .replace(R.id.vg_full_container,homeFragment)
    .setCustomAnimations(R.anim.enter, R.anim.exit,
                         R.anim.popenter, R.anim.popexit)
    .commitAllowingStateLoss();

设置动画的方法如下:

Android从左到右滑动动画


我已经尝试使用setCustomAnimation(),并且它运行良好。但是,如果我想要使用Android L的转换框架的setEnterTransition()setExitTransition(),我该怎么做?这些函数没有显示任何转换。 - not_again_stackoverflow
你想在Activity转换或Fragment转换期间添加动画效果吗? - Jaydeep Devda
当我的活动启动时,我希望根据我的XML过渡片段。但是,它只是弹出而没有任何转换(在我的情况下从左侧滑动)。我知道setCustomAnimations()将动画化我的片段的进入和退出。但是我无法使用setCustomAnimations()指定要转换/动画的视图以及不要动画的视图。也就是说,我希望片段中的某些视图从左侧滑动,其他视图从右侧滑动。 - not_again_stackoverflow
你可以在视图上尝试动画效果,例如:http://www.androidhive.info/2013/06/android-working-with-xml-animations/。 - Jaydeep Devda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接