我有Main Activity
使用WebView
的应用加载网页。
当用户想要使用设备上的后退按钮(而不是屏幕上的后退按钮)返回上一个网页时,我尝试设置动画,但动画根本不显示。
以下代码超出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>
我不确定我错过了什么。我已经检查了很多主题,但我无法修复我的问题。
提前致谢。
答案 0 :(得分:0)
从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()然后调用onPrndingTransition(..)
答案 1 :(得分:0)
这是解决方案!!!
完成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>