overridePendingTransition无法正常工作

Tim*_*nen 15 android transitions android-intent

我正在尝试在我的应用程序中实现转换,但overridePendingTransition(anim,anim)无法正常工作.

  • 我启用了窗口转换
  • 在调试代码之后,我可以说编译器确实执行了调用,但是没有显示
  • 我试过在overridePendingTransition()之前调用finish()这似乎没有任何效果

我的代码简单而标准:

启动intent并调用overridePendingTransition:

Intent newsIntent = new Intent(ZPFActivity.this, More2013Activity.class);
startActivity(newsIntent);
overridePendingTransition(R.anim.slide_no_move, R.anim.fade);
finish();
Run Code Online (Sandbox Code Playgroud)

开始动画不应该只做淡入淡出动画应该有效的任何事情.

slide_no_move XML:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0%p" android:toYDelta="0%p"
android:duration="500"/>
Run Code Online (Sandbox Code Playgroud)

淡出XML:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" 
 android:fillAfter="true">
 <alpha android:fromAlpha="1.0" 
        android:toAlpha="0.0"
        android:duration="500"/>
</set>
Run Code Online (Sandbox Code Playgroud)

编辑:我忘了提到我开始的活动都扩展了"主要"活动.这可能导致问题吗?

Dam*_* R. 28

尝试在调用后调用pendingTransition finish(),如下所示:

Intent newsIntent = new Intent(ZPFActivity.this, More2013Activity.class);
startActivity(newsIntent);
finish();
overridePendingTransition(R.anim.slide_no_move, R.anim.fade);
Run Code Online (Sandbox Code Playgroud)


小智 23

如果激活USB调试模式,它可以禁用转换效果.输入开发人员选项(激活调试模式的位置),找到用户的界面部分,检查动画的过渡比例是否禁用了动画.如果是这样,请将其设置为.5x.完成!


har*_*ore 13

试试这个:

    public class More2013Activity extends Activity{
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          overridePendingTransition(R.anim. slide_no_move, R.anim.fade_in);
          setContentView(R.layout.more_activity)
      }
    }
Run Code Online (Sandbox Code Playgroud)

而不是你的代码.


Pra*_*sad 10

如果您使用的是android版本> = 21 ,请在values-v21文件夹的style.xml文件中将android:windowActivityTransitions属性设置为true,如下所示.

   <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

       <item name="android:windowActivityTransitions">true</item>

   </style>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,你救了我的一天! (2认同)

kot*_*D K 7

从6.0开始使用此方法覆盖自定义动画

ActivityOptions options = ActivityOptions.makeCustomAnimation(context,R.anim.slide_from_right, R.anim.slide_to_left);
Intent intent = new Intent(context, WhichActivityToOpen.class);
context.startActivity(intent, options.toBundle());
Run Code Online (Sandbox Code Playgroud)


use*_*390 6

进入你的设备开发者选项,还有三个选项窗口动画比例,过渡动画比例和动画持续时间比例.确保所有都没有关闭.这是我遇到的原因之一.


Tim*_*nen 4

我知道这是一篇旧帖子,但我看到它并觉得有义务回答它:

这是一个非常模糊的问题,并且与设备有关。我当时用的是iOcean X7。后来我发现这个手机不能播放动画。对于某些人来说,它不会在任何应用程序上播放动画。