Android中的默认后退按钮导航动画

时间:2013-06-01 20:58:58

标签: android

我想让“向上”导航使用与“后退”导航相同的动画。我正在使用overridePendingTransition来覆盖动画,但我无法确定后退按钮默认使用哪个动画资源。有谁知道吗?

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

2 个答案:

答案 0 :(得分:4)

我最后在向上导航时调用了finish()。这样,动画是相同的,之前的活动不会失去其状态。作为参考,代码如下所示:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            return true;
    }
    return false;
}

请注意,如果您的活动可以从应用外部启动,则可能需要一些额外的逻辑来确保向上导航按预期运行。

答案 1 :(得分:1)

所以,如果我理解正确的话,你想要为你的一个视图复制“后退”动画(向左滑出)或者覆盖后退按钮按下。好吧,为此,请在名为res的{​​{1}}文件夹中创建一个新文件夹。在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>