2

我想让“向上”导航使用与“返回”导航相同的动画。我overridePendingTransition用来覆盖动画,但我不知道默认情况下后退按钮使用哪个动画资源。有人知道吗?

例如,在默认 ICS 安装中,设置应用程序从其子页面执行此操作。

4

2 回答 2

4

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.

于 2013-06-15T01:53:26.377 回答
1

因此,如果我对您的理解正确,您想为您的一个视图复制“后退”动画(向左滑出)或覆盖后退按钮按下。好吧,要做到这一点,请在您的文件夹中创建一个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);
于 2013-06-01T23:28:07.660 回答