我有一个活动,默认情况下会在其中加载一个片段的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>
答案 0 :(得分:1)
试试这个:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.vg_full_container,homeFragment)
.setCustomAnimations(R.anim.enter, R.anim.exit,
R.anim.popenter, R.anim.popexit)
.commitAllowingStateLoss();
设置这样的动画: