1、res/anim下的动画文件fragment_left
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="sequentially" >
<translate
android:duration="300"
android:fromXDelta="-300"
android:toXDelta="0" />
</set>fragment_out<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="sequentially" >
<alpha
android:duration="300"
android:fromAlpha="1.0"
android:toAlpha="0.0"
/>
</set>2、在代码切换中
FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.fragment_in, R.anim.fragment_out;//放在replace之前
fragmentTransaction.replace(R.id.ll_root_fragment, fragment);
fragmentTransaction.commit();3、在多个fragment的动画切换中会出现java.lang.IllegalStateException: No host异常
在fragment中重写如下方法可以解决
@Override
public void onDetach() {
super.onDetach();
try {
Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");
childFragmentManager.setAccessible(true);
childFragmentManager.set(this, null);
} catch (NoSuchFieldException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
本文介绍了如何在Android应用中为Fragment设置进入与退出动画,并通过示例代码详细展示了动画文件的配置方法。此外,还提供了在多个Fragment切换时遇到Nohost异常的解决方案,包括通过重写`onDetach`方法来避免这一问题。
2398

被折叠的 条评论
为什么被折叠?



