![](/img/trans.png)
[英]overridePendingTransition not work in adapter(android)
[英]Android app overridePendingTransition not shown
我有一个使用WebView
加载网页的Main Activity
的应用程序。
当用户希望使用设备上的后退按钮(而不是屏幕上的后退按钮)返回上一个网页时,我试图设置动画,但是动画根本没有显示。
下面的代码在onCreate()
。
注意:请注意,我在注释掉的每一行中都尝试了overridePendingTransition
,没有任何效果。
这是代码:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.i("BACK", " Back pressed!");
//overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
if ((keyCode == KeyEvent.KEYCODE_BACK) && this.webView.canGoBack()) {
//overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
this.webView.goBack();
return true;
}
else{
return super.onKeyDown(keyCode, event);
}
}
@Override
public void onBackPressed(){
super.onBackPressed();
//overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
//finish();
return;
}
如果我使用finish()
则退出应用程序而不是返回。
这里的slide_in_right xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:fromXDelta="100%"
android:toXDelta="0%"
android:duration="500" />
<alpha android:duration="500" android:fromAlpha="0.0" android:toAlpha="1.0" />
</set>
最后是slide_out_left:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0%"
android:toXDelta="-100%"
android:duration="500" />
<alpha android:duration="500" android:fromAlpha="1.0" android:toAlpha="0.0" />
</set>
我不确定我缺少什么。 我已经检查了很多主题,但无法解决我的问题。
提前致谢。
删除super.onBackPressed();
来自public void onBackPressed()
因为它将发出超级调用,并且仅在此处完成活动。
将您的onBackPressed()代码更改为:
@Override
public void onBackPressed(){
finish();
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
}
是的,正如Kishore Jethava所说。 您应该先调用finish(),然后再调用onerridingPendingTransition(..)
这是解决方案!!!
完成Activity
后,调用overridePendingTransition
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
overridePendingTransition(R.anim.activity_backin, R.anim.activity_back_out);
}
anim
文件夹中的activity_backin.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="200"
android:fromXDelta="-100%"
android:toXDelta="0%" />
</set>
anim
文件夹中的activity_back_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="200"
android:fromXDelta="0%"
android:toXDelta="100%" />
</set>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.