【问题标题】:Disable Transition Animation Between Activities禁用活动之间的过渡动​​画
【发布时间】:2012-03-24 16:16:58
【问题描述】:

我正在从活动 A 调用活动 B,其中包含使用以下代码的视频视图:

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

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

【问题讨论】:

标签: java android android-intent


【解决方案1】:

尝试调用:

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()?我得到了相同的预期结果(没有动画)?
  • @EvanM 您不必使用 startActivityForResult()。如果你想从下一个活动中获得“结果”,你只会使用它。
  • 只使用intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 为我工作。
  • 在棉花糖上没有overridePendingTransition是不行的
  • @Micro 抱歉,只有原始答案有效!看来overridePendingTransition 是必须的。
【解决方案2】:

如果你想对所有活动都这样做,那么就这样做吧:

switching activities without animation

只需为清单中的每个活动分配不带动画的样式。

或者通过代码这样做:

Disable activity slide-in animation when launching new activity?

【讨论】:

    【解决方案3】:

    我花了很长时间才弄明白...

    支持从另一个 Activity 返回时覆盖过渡:

    在您的活动中使用overridePendingTransition onResume

        override fun onResume() {
            super.onResume()
    
            // disable transition when coming back from an activity
            overridePendingTransition(0, 0)
        }
    

    【讨论】:

      猜你喜欢
      • 2011-03-31
      • 1970-01-01
      • 2017-12-04
      • 2012-08-19
      • 2020-05-25
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多