【发布时间】:2012-08-11 01:37:25
【问题描述】:
我有一个包含几个“正常”活动的应用程序,可以在横向或纵向上运行。它们专为肖像而设计,主要用于肖像。
此应用有一个使用相机并锁定为横向的 Activity。我通过将图像和文本旋转 90 度来“模拟”这个活动是纵向的,所以它看起来像其他活动。
在某些设备上,例如三星 Galaxy Tab 7 和 Galaxy S3,从正常的纵向活动到相机横向活动并返回时会显示一个旋转动画。这会让用户感到困惑,因为横向活动模拟了纵向。
有没有办法移除这个旋转动画?理想情况下,我想将默认纵向动画更改为纵向动画,但只需删除旋转动画就足够了。
我试过了
overridePendingTransition(0, 0);
该方法的其他变体没有成功。
[添加]
按照@igalarzab、@Georg 和@Joe 的建议,我做到了(仍然没有运气):
- 在清单中添加了 android:configChanges="orientation|screenSize"
- 添加了 onConfigurationChanged
- 创建了一个什么都不做的虚拟动画并添加了 overridePendingTransition(R.anim.nothing, R.anim.nothing);
我得到了这些结果:
- onConfigurationChanged 仅在旋转相同 Activity 时调用(纵向上的 Activity A -> 横向上的 Activity A)。但是从纵向上的活动 A -> 横向上的活动 B 时不会调用它
- 这会阻止 Activity 在旋转时重新启动,但并未移除旋转动画(在 Galaxy S3、Galaxy Nexus、Galaxy Tab 7.0 和 Galaxy Tab 10.1 上测试)
- overridePendingTransition(R.anim.nothing, R.anim.nothing);删除了正常的过渡(纵向->纵向和横向->横向),但没有删除旋转动画(纵向->横向,反之亦然)。
[视频]
我上传了一个视频,其中显示了我想禁用的动画。从相机活动(锁定为横向)更改为其他活动,同时将手机保持为纵向时会发生这种情况:
【问题讨论】:
-
嗨,我肯定会关注这个问题,因为我们有类似的设置。我也尝试过 overridePendingTransition 并且无法删除令人困惑的动画。您可能会发现我关于相机人像模式可靠性的问题很有趣(如果您有任何意见,我将不胜感激)stackoverflow.com/questions/11638250/…
-
我会在那里添加我有 Sam 的任何输入。我还没有找到任何解决方案。
-
你为什么使用类似 iOS 的底部标签?为什么不使用操作栏?我知道这与您的问题无关,但您应该遵循设计指南,恕我直言。
-
感谢@Gaurav,但从我的测试来看,它似乎与 overridePendingTransition() 具有相同的效果。它会移除过渡动画,但不会移除旋转。
标签: android android-layout android-animation