gpt4 book ai didi

Android Lollipop 主页按钮返回动画

转载 作者:搜寻专家 更新时间:2023-11-01 07:56:01 25 4
gpt4 key购买 nike

我正在尝试新的 Android API,特别是新的动画。我有两个 Activity ,并在第二个 Activity 中使用 setEnterTransition() 和 setExitTransition() 进行幻灯片转换。当我使用其中的按钮或使用后退按钮切换 Activity 时,一切正常,但是当我在第二个 Activity 中并按下主页按钮时,返回动画不会播放...

第二个 Activity onCreate() 方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

if (getActionBar() != null) {
getActionBar().setDisplayShowHomeEnabled(false);
getActionBar().setDisplayHomeAsUpEnabled(true);
}

Slide slideTransition = new Slide();
slideTransition.setDuration(1000);
slideTransition.setSlideEdge(Gravity.RIGHT);

getWindow().setEnterTransition(getSlideTransition(Gravity.RIGHT, 1000));
getWindow().setExitTransition(getSlideTransition(Gravity.LEFT, 1000));

getWindow().setAllowEnterTransitionOverlap(true);

setContentView(R.layout.activity_second);

//...
}

第一个 Activity 被设置为 list 中第二个 Activity 的父级。

我找到了一些使用 overridePendingTransition() 方法的解决方案,但我想要一个使用新方法的解决方案(如果可能的话)。

谢谢!

最佳答案

这是设计使然。返回转换仅在 Activity 明确完成时触发(即您按下后退按钮或调用 finishAfterTransition())。当您按下主页按钮时,您将应用程序置于后台,以便用户稍后可以返回到相同的 Activity 。如果您在按下主页按钮时完成 Activity ,用户会感到困惑,为什么他们稍后返回应用程序时没有被带到相同的 Activity 。

还值得一提的是,新的 Lollipop 转换 API 不是旨在取代 overridePendingTransition()。两者是根本不同的。当您从一个 Activity 切换到另一个 Activity 时,Lollipop 转换 API 为您提供了一种单独为 Activity View 层次结构中的内容制作动画的方法。另一方面,overridePendingTranition() 允许您在屏幕上添加或删除 Activity 窗口时覆盖系统的默认窗口动画。换句话说,前者对 Activity 窗口内的 View 进行操作,而后者对整个 Activity 窗口本身进行操作。

两者之间的最后一个主要区别是新的 Lollipop 转换 API 仅在属于同一任务的两个 Activity 之间工作。如果您想在属于两个不同任务的两个 Activity 之间导航时执行退出/进入动画,则需要改用 overridePendingTransition()

关于Android Lollipop 主页按钮返回动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27536623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com