在android 14上,overridePendingTransition工作错误

问题描述 投票:0回答:2

我尝试用动画实现活动到活动的转换, 所以我使用了 overridePendingTranstiion。 我发现一些非常奇怪的问题。 this issue 当我删除放置在 res/anim 目录中的任何过时的 xml 文件时,会发生这种情况。 我测试了很多设备,这个问题只出现在android 14设备上。 重启设备后此问题消失。 还有其他人遇到过类似的问题吗? 请原谅我糟糕的英语。

this 动画是正常结果。

我在名为“slide_in_left”的动画 xml 下面使用了动画。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@integer/animation_default_duration"
    android:fromXDelta="100%"
    android:interpolator="@android:anim/decelerate_interpolator"
    android:toXDelta="0%" />
</set>

并且,我使用了如下所示的方法。

class MainActivity : AppCompatActivity() {
    lateinit var binding: ActivityMainBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        window.setFlags(
            WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN
        )

        binding.button.setOnClickListener {
            startActivity(Intent(this, MainActivity2::class.java))
            overridePendingTransition(R.anim.slide_in_left,0)
        }
    }
}
android animation android-animation android-14 overridependingtransition
2个回答
0
投票

此方法在 API 级别 34 中已弃用。使用 overrideActivityTransition

public void overrideActivityTransition (int overrideType, 
                int enterAnim, 
                int exitAnim)

0
投票

我自己找到了这个问题的解决方案。 我的项目设置了gradle 3.6.4和gradle插件6.1.1版本。 我将两者都更改为7.0.2版本之后, 这个问题消失了。 如果有人遇到类似的问题, 希望这个回答可以帮到你。

© www.soinside.com 2019 - 2024. All rights reserved.