我想让“向上”导航使用与“后退”导航相同的动画。我正在使用overridePendingTransition
来覆盖动画,但我无法确定后退按钮默认使用哪个动画资源。有谁知道吗?
例如,在默认的ICS安装中,“设置”应用程序通过其子页面执行此操作。
答案 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>