我正在尝试在我的应用程序中实现转换,但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();
开始动画不应该只做淡入淡出动画应该有效的任何事情.
slide_no_move XML:
淡出XML:
编辑:我忘了提到我开始的活动都扩展了"主要"活动.这可能导致问题吗?
如果激活USB调试模式,它可以禁用转换效果.输入开发人员选项(激活调试模式的位置),找到用户的界面部分,检查动画的过渡比例是否禁用了动画.如果是这样,请将其设置为.5x.完成!
试试这个:
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) } }
而不是你的代码.
尝试在调用后调用pendingTransition finish()
,如下所示:
Intent newsIntent = new Intent(ZPFActivity.this, More2013Activity.class); startActivity(newsIntent); finish(); overridePendingTransition(R.anim.slide_no_move, R.anim.fade);
从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());
进入你的设备开发者选项,还有三个选项窗口动画比例,过渡动画比例和动画持续时间比例.确保所有都没有关闭.这是我遇到的原因之一.
如果您使用的是android版本> = 21 ,请在values-v21文件夹的style.xml文件中将android:windowActivityTransitions属性设置为true,如下所示.
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:windowActivityTransitions">true</item> </style>