You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

三星A14(Android14)无法覆盖Activity过渡动画问题求助

Android 14 三星A14设备上overridePendingTransition()淡入淡出动画异常问题

类似问题反馈情况

已有不少开发者在社区反馈过三星Android 14设备上的过渡动画异常问题,涉及overridePendingTransition()自定义动画失效,表现包括默认上滑动画覆盖自定义效果、动画突然中断等。这类问题主要集中在三星中低端机型(如A系列)的Android 14系统版本上,属于品牌特定版本的兼容性问题,并非所有Android 14设备都会出现。

可行解决办法

1. 替换为AndroidX Transition API

放弃overridePendingTransition(),改用AndroidX的Transition框架实现页面过渡,兼容性更好:

// 当前Activity中设置退出过渡
val fadeExit = Fade()
window.exitTransition = fadeExit

// 启动目标Activity
startActivity(intent)

// 目标Activity的onCreate方法中设置进入过渡
val fadeEnter = Fade()
window.enterTransition = fadeEnter

2. 调整三星系统动画设置

部分三星Android 14设备默认开启的系统动画优化会强制替换自定义动画,可引导用户调整:

  • 进入设置 -> 开发者选项 -> 动画缩放,将「窗口动画缩放」「过渡动画缩放」「动画程序时长缩放」全部设置为1x;
  • 未激活开发者选项的话,先进入设置 -> 关于手机,连续点击「版本号」直到提示激活。

3. 延迟执行自定义动画

在启动Activity后延迟短时间执行overridePendingTransition(),避开系统动画的抢占:

startActivity(intent);
new Handler(Looper.getMainLooper()).postDelayed(() -> {
    overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}, 50);

注意:延迟时间控制在50-100ms以内,避免出现视觉卡顿。

4. 检查动画资源配置

确保淡入淡出动画的XML文件配置正确,无冲突属性:

<!-- res/anim/fade_in.xml -->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="300"
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:interpolator="@android:anim/decelerate_interpolator"/>

<!-- res/anim/fade_out.xml -->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="300"
    android:fromAlpha="1.0"
    android:toAlpha="0.0"
    android:interpolator="@android:anim/accelerate_interpolator"/>

内容的提问来源于stack exchange,提问作者leremjs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 17:10:04