android - FragmentTransation setCustomAnimations 不起作用

标签 android android-fragments android-support-library

我尝试使用新的 android 兼容性包将 fragment 包含到我的项目中。 当我添加一个新 fragment 时,我试图包含一个过渡动画。这只是我的动画作品之一。 In 动画有效,但 Out 动画无效。 我在某处读到它是兼容性包中的一个错误。但我还读到该错误已在兼容性包的第三版中得到修复。谁能帮我解决这个问题

在动画中

<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/anticipate_interpolator"
android:fromXDelta="0"
android:toXDelta="0"
android:fromYDelta="100%"        
android:toYDelta="0%"
android:duration="1000"/>

出动画

<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
android:fromXDelta="0"
android:toXDelta="0"
android:zAdjustment="top"
android:fromYDelta="0%"        
android:toYDelta="100%"
android:duration="1000"/>

这是我用来添加 fragment 的代码

newFragment = new HelloWorldFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.bottom_top_animation, R.anim.top_bottom_animation);
ft.add(R.id.outer_layout, newFragment);
ft.addToBackStack(null);
ft.commit();

最佳答案

这适用于当前版本的库,但之前肯定被破坏了。你可以使用这样的东西:

final FragmentManager fm = getSupportFragmentManager();
final FragmentTransaction ft = fm.beginTransaction();
ft.setCustomAnimations(R.anim.slide_up, R.anim.slide_down, R.anim.slide_up, R.anim.slide_down)
  .add(R.id.fragment_container, new SomeFragment(), FRAGMENT_TAG)
  .addToBackStack(FRAGMENT_TAG)
  .commit();

其中 R.anim.slide_up 是您的输入动画,而 R.anim.slide_down 是您的输出动画。 setCustomAnimations 的第二对参数(3 和 4)允许您指定弹出回栈的弹出/弹出动画(例如,当用户按下返回时, fragment 将使用指定为第四个参数的动画进行动画处理)。

关于android - FragmentTransation setCustomAnimations 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6993863/

相关文章:

android - ERROR : Failed to resolve: com. android.support.constraint :constraintlayout:1. 1.3 在项目结构对话框中显示受影响的模块:app

Android Studio 一直拒绝解析 com.android.support :appcompat-v7:29. 0.1

android - Gradle、Javadoc 和 Android 文档

Android:模拟位置几秒钟后变回原始位置

android - 什么时候应该调用 Fragment 的 onActivityCreated?

android - 无法解析方法'add(int, com.example.**.beatle.app.MainActivity.PlaceholderFragment)

java - ViewPager 中 Fragments 的长时间运行 AsyncTasks

java - DiffUtil.Callback 中 getChangePayload(int oldItemPosition, int newItemPosition) 的用法是什么

android - 我可以在 android 中使用 Linux 系统调用吗?

Android如何在ListActivity中使用Toolbar?