我想让“向上”导航使用与“返回”导航相同的动画。我overridePendingTransition
用来覆盖动画,但我不知道默认情况下后退按钮使用哪个动画资源。有人知道吗?
例如,在默认 ICS 安装中,设置应用程序从其子页面执行此操作。
我想让“向上”导航使用与“返回”导航相同的动画。我overridePendingTransition
用来覆盖动画,但我不知道默认情况下后退按钮使用哪个动画资源。有人知道吗?
例如,在默认 ICS 安装中,设置应用程序从其子页面执行此操作。
I ended up calling finish()
on up navigation. That way, the animation is the same and the previous activity doesn't lose its state. For reference, the code looks like this:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
}
return false;
}
Note that if your activity could be started from outside your app, some additional logic may be needed to ensure that up navigation behaves as expected.
因此,如果我对您的理解正确,您想为您的一个视图复制“后退”动画(向左滑出)或覆盖后退按钮按下。好吧,要做到这一点,请在您的文件夹中创建一个res
名为anim
. 在anim
文件夹中创建一个新Android XML
文件并调用它slide_out_left
并放置以下代码:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="-50%p"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
现在,创建另一个Android XML
文件并调用它slide_in_right
并放置以下代码:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="50%p" android:toXDelta="0"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
最后,您可以在需要的地方调用动画。例如,在覆盖挂起的转换时:
MyActivity.this.overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);