Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果

时间:2021-04-16 05:50:10
如题. 我在切换ACTIVITY的时候, 从A跳到B. 使用overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out). 
 A跳B的时候没有效果, 出现的是系统默认的效果. 只有B退回A的时候才有效果. 求教!
并且都是在startActivity或者finish方法之后使用的. 谢谢!
Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果
Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果

12 个解决方案

#1


A跳B把out动画设为null,B返回A把in动画设为null

#2


是这样调用动画,自定义两个动画试试,不要使用android.R,这个会调用系统已经定义好的动画;直接使用R.anim.slide_in,R.anim.slide_out。

#3


引用 1 楼 zhumj_zhumj 的回复:
A跳B把out动画设为null,B返回A把in动画设为null

你好. 我这样试了下, 好像不管用. 而且里边的参数是int值, 不能设为null.   我设成了0. 不好使. 请问还有别的办法吗

#4


引用 2 楼 yujiugang 的回复:
是这样调用动画,自定义两个动画试试,不要使用android.R,这个会调用系统已经定义好的动画;直接使用R.anim.slide_in,R.anim.slide_out。

好麻烦, 不想自己写动画.............
主要是没写过........... Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果

#5


引用 3 楼 dashan618 的回复:
Quote: 引用 1 楼 zhumj_zhumj 的回复:

A跳B把out动画设为null,B返回A把in动画设为null

你好. 我这样试了下, 好像不管用. 而且里边的参数是int值, 不能设为null.   我设成了0. 不好使. 请问还有别的办法吗


你把A跳B的时候in和out动画互换一下位置

#6


引用 5 楼 zhumj_zhumj 的回复:
Quote: 引用 3 楼 dashan618 的回复:

Quote: 引用 1 楼 zhumj_zhumj 的回复:

A跳B把out动画设为null,B返回A把in动画设为null

你好. 我这样试了下, 好像不管用. 而且里边的参数是int值, 不能设为null.   我设成了0. 不好使. 请问还有别的办法吗


你把A跳B的时候in和out动画互换一下位置


逻辑有点拗:

在A跳转到B时:
       //第一个参数为B的入场动画效果,第二个参数为A的退场动画  
       overridePendingTransition(R.anim.fade, R.anim.hold);

在B返回到A时:
       //第一个参数为A的入场动画效果,第二个参数为B的退场动画  
       overridePendingTransition(R.anim.fade, R.anim.hold);

#7


引用 5 楼 zhumj_zhumj 的回复:
Quote: 引用 3 楼 dashan618 的回复:

Quote: 引用 1 楼 zhumj_zhumj 的回复:

A跳B把out动画设为null,B返回A把in动画设为null

你好. 我这样试了下, 好像不管用. 而且里边的参数是int值, 不能设为null.   我设成了0. 不好使. 请问还有别的办法吗


你把A跳B的时候in和out动画互换一下位置

也换过了, 不好使............. Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果

#8


引用 6 楼 zhumj_zhumj 的回复:
Quote: 引用 5 楼 zhumj_zhumj 的回复:

Quote: 引用 3 楼 dashan618 的回复:

Quote: 引用 1 楼 zhumj_zhumj 的回复:

A跳B把out动画设为null,B返回A把in动画设为null

你好. 我这样试了下, 好像不管用. 而且里边的参数是int值, 不能设为null.   我设成了0. 不好使. 请问还有别的办法吗


你把A跳B的时候in和out动画互换一下位置


逻辑有点拗:

在A跳转到B时:
       //第一个参数为B的入场动画效果,第二个参数为A的退场动画  
       overridePendingTransition(R.anim.fade, R.anim.hold);

在B返回到A时:
       //第一个参数为A的入场动画效果,第二个参数为B的退场动画  
       overridePendingTransition(R.anim.fade, R.anim.hold);

总结一句就是第一个参数全都是入场动画效果就对了吧?
难道现在除了自定义动画没有别的办法吗?还是没搞明白为什么会出现A跳B不好使,B返回A好使.........
Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果
我改成这样了, A跳B还是系统默认的从右侧滑入. 
对了补充一下, 有一个诡异的现象, 就是我在同一个地方从A往B跳的时候, 第一次打开B的时候, A有我设的效果, 但是关掉B再从来的时候,就又都是系统默认的了........

#9


引用 4 楼 dashan618 的回复:
Quote: 引用 2 楼 yujiugang 的回复:

是这样调用动画,自定义两个动画试试,不要使用android.R,这个会调用系统已经定义好的动画;直接使用R.anim.slide_in,R.anim.slide_out。

好麻烦, 不想自己写动画.............
主要是没写过........... Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果




引用 8 楼 dashan618 的回复:
Quote: 引用 6 楼 zhumj_zhumj 的回复:

Quote: 引用 5 楼 zhumj_zhumj 的回复:

Quote: 引用 3 楼 dashan618 的回复:

Quote: 引用 1 楼 zhumj_zhumj 的回复:

A跳B把out动画设为null,B返回A把in动画设为null

你好. 我这样试了下, 好像不管用. 而且里边的参数是int值, 不能设为null.   我设成了0. 不好使. 请问还有别的办法吗


你把A跳B的时候in和out动画互换一下位置


逻辑有点拗:

在A跳转到B时:
       //第一个参数为B的入场动画效果,第二个参数为A的退场动画  
       overridePendingTransition(R.anim.fade, R.anim.hold);

在B返回到A时:
       //第一个参数为A的入场动画效果,第二个参数为B的退场动画  
       overridePendingTransition(R.anim.fade, R.anim.hold);

总结一句就是第一个参数全都是入场动画效果就对了吧?
难道现在除了自定义动画没有别的办法吗?还是没搞明白为什么会出现A跳B不好使,B返回A好使.........
Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果
我改成这样了, A跳B还是系统默认的从右侧滑入. 
对了补充一下, 有一个诡异的现象, 就是我在同一个地方从A往B跳的时候, 第一次打开B的时候, A有我设的效果, 但是关掉B再从来的时候,就又都是系统默认的了........


带了android.R.anim这个出来的动画都是系统默认的,用自定义的需要再res文件下面添加anim文件夹,然后在里面写xml动画;引用方式就是R.anim.xxx;给你个从底部到顶部的例子:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="500"
        android:fromYDelta="100%p"
        android:toYDelta="0" />
    <alpha
        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>

半秒时间,从底部到顶部,透明度从无到有,将其命名为slide_in;slide_out就将from和to的值交换就可以了。

#10


带了android.R.anim这个出来的动画都是系统默认的,用自定义的需要再res文件下面添加anim文件夹,然后在里面写xml动画;引用方式就是R.anim.xxx;给你个从底部到顶部的例子:
slide_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 
    <translate
        android:duration="500"
        android:fromYDelta="100%p"
        android:toYDelta="0" />
    <alpha
        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>

半秒时间,从底部到顶部,透明度从无到有,将其命名为slide_in;
slide_out就将from和to的值交换就可以了。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 
    <translate
        android:duration="500"
        android:fromYDelta="0"
        android:toYDelta="100%p" />
    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
</set>

#11


引用 10 楼 yujiugang 的回复:
带了android.R.anim这个出来的动画都是系统默认的,用自定义的需要再res文件下面添加anim文件夹,然后在里面写xml动画;引用方式就是R.anim.xxx;给你个从底部到顶部的例子:
slide_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 
    <translate
        android:duration="500"
        android:fromYDelta="100%p"
        android:toYDelta="0" />
    <alpha
        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>

半秒时间,从底部到顶部,透明度从无到有,将其命名为slide_in;
slide_out就将from和to的值交换就可以了。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 
    <translate
        android:duration="500"
        android:fromYDelta="0"
        android:toYDelta="100%p" />
    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
</set>


感谢大神一直回得. 您看下. 我自定义了一个动画, 但是不能生效.不知什么原因.

Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果
Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果
Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果

#12


引用 10 楼 yujiugang 的回复:
带了android.R.anim这个出来的动画都是系统默认的,用自定义的需要再res文件下面添加anim文件夹,然后在里面写xml动画;引用方式就是R.anim.xxx;给你个从底部到顶部的例子:
slide_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 
    <translate
        android:duration="500"
        android:fromYDelta="100%p"
        android:toYDelta="0" />
    <alpha
        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>

半秒时间,从底部到顶部,透明度从无到有,将其命名为slide_in;
slide_out就将from和to的值交换就可以了。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 
    <translate
        android:duration="500"
        android:fromYDelta="0"
        android:toYDelta="100%p" />
    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
</set>


Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果
Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果

这样设置完了出来依然是右进右出的效果, 好像自定义THEME完全没有生效一样.

#1


A跳B把out动画设为null,B返回A把in动画设为null

#2


是这样调用动画,自定义两个动画试试,不要使用android.R,这个会调用系统已经定义好的动画;直接使用R.anim.slide_in,R.anim.slide_out。

#3


引用 1 楼 zhumj_zhumj 的回复:
A跳B把out动画设为null,B返回A把in动画设为null

你好. 我这样试了下, 好像不管用. 而且里边的参数是int值, 不能设为null.   我设成了0. 不好使. 请问还有别的办法吗

#4


引用 2 楼 yujiugang 的回复:
是这样调用动画,自定义两个动画试试,不要使用android.R,这个会调用系统已经定义好的动画;直接使用R.anim.slide_in,R.anim.slide_out。

好麻烦, 不想自己写动画.............
主要是没写过........... Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果

#5


引用 3 楼 dashan618 的回复:
Quote: 引用 1 楼 zhumj_zhumj 的回复:

A跳B把out动画设为null,B返回A把in动画设为null

你好. 我这样试了下, 好像不管用. 而且里边的参数是int值, 不能设为null.   我设成了0. 不好使. 请问还有别的办法吗


你把A跳B的时候in和out动画互换一下位置

#6


引用 5 楼 zhumj_zhumj 的回复:
Quote: 引用 3 楼 dashan618 的回复:

Quote: 引用 1 楼 zhumj_zhumj 的回复:

A跳B把out动画设为null,B返回A把in动画设为null

你好. 我这样试了下, 好像不管用. 而且里边的参数是int值, 不能设为null.   我设成了0. 不好使. 请问还有别的办法吗


你把A跳B的时候in和out动画互换一下位置


逻辑有点拗:

在A跳转到B时:
       //第一个参数为B的入场动画效果,第二个参数为A的退场动画  
       overridePendingTransition(R.anim.fade, R.anim.hold);

在B返回到A时:
       //第一个参数为A的入场动画效果,第二个参数为B的退场动画  
       overridePendingTransition(R.anim.fade, R.anim.hold);

#7


引用 5 楼 zhumj_zhumj 的回复:
Quote: 引用 3 楼 dashan618 的回复:

Quote: 引用 1 楼 zhumj_zhumj 的回复:

A跳B把out动画设为null,B返回A把in动画设为null

你好. 我这样试了下, 好像不管用. 而且里边的参数是int值, 不能设为null.   我设成了0. 不好使. 请问还有别的办法吗


你把A跳B的时候in和out动画互换一下位置

也换过了, 不好使............. Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果

#8


引用 6 楼 zhumj_zhumj 的回复:
Quote: 引用 5 楼 zhumj_zhumj 的回复:

Quote: 引用 3 楼 dashan618 的回复:

Quote: 引用 1 楼 zhumj_zhumj 的回复:

A跳B把out动画设为null,B返回A把in动画设为null

你好. 我这样试了下, 好像不管用. 而且里边的参数是int值, 不能设为null.   我设成了0. 不好使. 请问还有别的办法吗


你把A跳B的时候in和out动画互换一下位置


逻辑有点拗:

在A跳转到B时:
       //第一个参数为B的入场动画效果,第二个参数为A的退场动画  
       overridePendingTransition(R.anim.fade, R.anim.hold);

在B返回到A时:
       //第一个参数为A的入场动画效果,第二个参数为B的退场动画  
       overridePendingTransition(R.anim.fade, R.anim.hold);

总结一句就是第一个参数全都是入场动画效果就对了吧?
难道现在除了自定义动画没有别的办法吗?还是没搞明白为什么会出现A跳B不好使,B返回A好使.........
Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果
我改成这样了, A跳B还是系统默认的从右侧滑入. 
对了补充一下, 有一个诡异的现象, 就是我在同一个地方从A往B跳的时候, 第一次打开B的时候, A有我设的效果, 但是关掉B再从来的时候,就又都是系统默认的了........

#9


引用 4 楼 dashan618 的回复:
Quote: 引用 2 楼 yujiugang 的回复:

是这样调用动画,自定义两个动画试试,不要使用android.R,这个会调用系统已经定义好的动画;直接使用R.anim.slide_in,R.anim.slide_out。

好麻烦, 不想自己写动画.............
主要是没写过........... Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果




引用 8 楼 dashan618 的回复:
Quote: 引用 6 楼 zhumj_zhumj 的回复:

Quote: 引用 5 楼 zhumj_zhumj 的回复:

Quote: 引用 3 楼 dashan618 的回复:

Quote: 引用 1 楼 zhumj_zhumj 的回复:

A跳B把out动画设为null,B返回A把in动画设为null

你好. 我这样试了下, 好像不管用. 而且里边的参数是int值, 不能设为null.   我设成了0. 不好使. 请问还有别的办法吗


你把A跳B的时候in和out动画互换一下位置


逻辑有点拗:

在A跳转到B时:
       //第一个参数为B的入场动画效果,第二个参数为A的退场动画  
       overridePendingTransition(R.anim.fade, R.anim.hold);

在B返回到A时:
       //第一个参数为A的入场动画效果,第二个参数为B的退场动画  
       overridePendingTransition(R.anim.fade, R.anim.hold);

总结一句就是第一个参数全都是入场动画效果就对了吧?
难道现在除了自定义动画没有别的办法吗?还是没搞明白为什么会出现A跳B不好使,B返回A好使.........
Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果
我改成这样了, A跳B还是系统默认的从右侧滑入. 
对了补充一下, 有一个诡异的现象, 就是我在同一个地方从A往B跳的时候, 第一次打开B的时候, A有我设的效果, 但是关掉B再从来的时候,就又都是系统默认的了........


带了android.R.anim这个出来的动画都是系统默认的,用自定义的需要再res文件下面添加anim文件夹,然后在里面写xml动画;引用方式就是R.anim.xxx;给你个从底部到顶部的例子:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="500"
        android:fromYDelta="100%p"
        android:toYDelta="0" />
    <alpha
        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>

半秒时间,从底部到顶部,透明度从无到有,将其命名为slide_in;slide_out就将from和to的值交换就可以了。

#10


带了android.R.anim这个出来的动画都是系统默认的,用自定义的需要再res文件下面添加anim文件夹,然后在里面写xml动画;引用方式就是R.anim.xxx;给你个从底部到顶部的例子:
slide_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 
    <translate
        android:duration="500"
        android:fromYDelta="100%p"
        android:toYDelta="0" />
    <alpha
        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>

半秒时间,从底部到顶部,透明度从无到有,将其命名为slide_in;
slide_out就将from和to的值交换就可以了。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 
    <translate
        android:duration="500"
        android:fromYDelta="0"
        android:toYDelta="100%p" />
    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
</set>

#11


引用 10 楼 yujiugang 的回复:
带了android.R.anim这个出来的动画都是系统默认的,用自定义的需要再res文件下面添加anim文件夹,然后在里面写xml动画;引用方式就是R.anim.xxx;给你个从底部到顶部的例子:
slide_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 
    <translate
        android:duration="500"
        android:fromYDelta="100%p"
        android:toYDelta="0" />
    <alpha
        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>

半秒时间,从底部到顶部,透明度从无到有,将其命名为slide_in;
slide_out就将from和to的值交换就可以了。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 
    <translate
        android:duration="500"
        android:fromYDelta="0"
        android:toYDelta="100%p" />
    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
</set>


感谢大神一直回得. 您看下. 我自定义了一个动画, 但是不能生效.不知什么原因.

Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果
Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果
Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果

#12


引用 10 楼 yujiugang 的回复:
带了android.R.anim这个出来的动画都是系统默认的,用自定义的需要再res文件下面添加anim文件夹,然后在里面写xml动画;引用方式就是R.anim.xxx;给你个从底部到顶部的例子:
slide_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 
    <translate
        android:duration="500"
        android:fromYDelta="100%p"
        android:toYDelta="0" />
    <alpha
        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>

半秒时间,从底部到顶部,透明度从无到有,将其命名为slide_in;
slide_out就将from和to的值交换就可以了。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
 
    <translate
        android:duration="500"
        android:fromYDelta="0"
        android:toYDelta="100%p" />
    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
</set>


Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果
Activity页面的切换效果 使用overridePendingTransition只有退出时有效果 进入时没有效果

这样设置完了出来依然是右进右出的效果, 好像自定义THEME完全没有生效一样.