禁用活动之间的过渡动画

34

我正在使用以下代码从Activity A调用包含Video View的Activity B:

Intent intent = new Intent(this, B.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivityForResult(intent, 0);

我正在使用Intent.FLAG_ACTIVITY_NO_ANIMATION来避免在调用新活动时出现过渡动画。但它对我不起作用,而且在过渡期间会出现黑屏。有没有办法避免这种过渡动画和黑屏,以便用户不会知道视频视图正在新屏幕中被调用?


试试这个链接:https://dev59.com/sGw05IYBdhLWcg3w3lol或者这个链接:https://dev59.com/C3E95IYBdhLWcg3wf-AF - Awais Tariq
3个回答

72

尝试调用:

Intent intent = new Intent(this, B.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivityForResult(intent, 0);
overridePendingTransition(0,0); //0 for no animation

这对我也起作用了,谢谢!快速问题,为什么您使用startActivityForResult()而不是只使用startActivity()?我使用两者都可以得到相同的期望结果(无动画)? - Evan McEwen
4
你不必使用startActivityForResult()。只有在想要从下一个Activity中获取“结果”时才需要使用它。 - Karim Varela
我只是使用intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);就解决了我的问题。 - Micro
3
在棉花糖系统中,不使用overridePendingTransition将无法正常工作。 - Vlad
@Micro 抱歉,但只有原始答案有效!似乎 overridePendingTransition 是必须的。 - Hamzeh Soboh

9

0

花了我相当长的时间才弄明白...

为了支持在从另一个Activity返回时覆盖转换:

在你的Activity onResume 中使用overridePendingTransition

    override fun onResume() {
        super.onResume()

        // disable transition when coming back from an activity
        overridePendingTransition(0, 0)
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接