【问题标题】:ActivityOptions.makeCustomAnimation crashes on emulatorActivityOptions.makeCustomAnimation 在模拟器上崩溃
【发布时间】:2017-10-23 13:45:13
【问题描述】:

在某些情况下,我使用 ActivityOptions.makeCustomAnimation 来管理从一个 Activity 到另一个 Activity 的转换。

当我尝试使用模拟器(API 16 或 23)时,它不起作用并且整个模拟器都冻结了。如果我将options 设置为null,则该应用程序可以工作。

知道为什么吗?在 Android Studio 上,我在使用 android:interpolator="@android:interpolator/linear_out_slow_in" 时收到警告,因为它在 21 下的 API 上不受支持。但如果不支持,我希望该字段被忽略,而且它在 API 23 下的模拟器上也不起作用所以我认为这不是问题。

这是我调用的方法

/**
 * @param destActivity Activity we want to launch
 * @param activity Current activity
 */
private <T> void goToNextActivity(Class<T> destActivity, Activity activity) {

    Bundle options = ActivityOptions.makeCustomAnimation(activity,
            R.anim.fade_in, R.anim.fade_out).toBundle();

    Intent intent = new Intent(activity, destActivity);
    activity.startActivity(intent, options);

    activity.finish(); // Finishes the current Activity
}

fade_in.xml

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromAlpha="0"
    android:toAlpha="1"
    android:interpolator="@android:interpolator/linear_out_slow_in" />

fade_out.xml

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromAlpha="1"
    android:toAlpha="0"
    android:interpolator="@android:interpolator/fast_out_linear_in" />

【问题讨论】:

    标签: android android-intent start-activity


    【解决方案1】:

    五个月后回复我年轻的自己:

    正如怀疑的那样,问题出在插值器上。我将其删除并在anim-v21 文件夹中添加了问题中描述的fade_in fade_out 实现。

    【讨论】:

      猜你喜欢
      • 2012-09-18
      • 2020-03-25
      • 2013-01-04
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 2021-08-27
      • 2011-12-09
      相关资源
      最近更新 更多