【发布时间】:2015-05-04 03:53:03
【问题描述】:
假设我的应用有两个活动A 和B。此外,我们将可能的屏幕方向称为landscape-1、portrait-2、landscape-3 和portrait-4。
我想将A 的方向锁定为横向(1 和3),将B 锁定为横向和纵向(1、2、3 和4)。
所以,为此,我使用了sensorLandscape。后来我意识到sensorLandscape 是针对API 9 或更高版本的,我想支持旧版本。我搜索了一种模拟sensorLandscape 行为的方法,但我没有找到任何东西。所以我现在要采用一种更简单的方法:我想在活动A 上使用landscape 模式(这只是1),但我不希望用户能够使用@987654341 @在活动B上(所以回到活动A时没有奇怪的转折)。
总结一下,思路如下:
活动的可能屏幕方向A: landscape-1.
活动B:landscape-1 和portrait-3 的可能屏幕方向。
有关如何完成此行为的任何想法?
【问题讨论】:
-
强制 Activity B 的方向锁定是没有意义的,并且可能会引起用户的烦恼。如果您要为活动 B 支持横向和纵向,那么只需让用户决定他们想要的方向(横向、反向横向、纵向、反向纵向)。换句话说,根本不要尝试锁定方向。至于活动 A,如果您只支持一种横向模式,您可能会再次引起用户的烦恼 - 很好,如果您需要,则强制仅横向,但同时支持横向和反向横向。
-
我很乐意这样做,这就是
sensorLandscape所做的。但我不能使用它,因为我需要支持旧设备。你知道我如何模仿sensorLandscape的行为吗? -
查看在您的活动代码中动态设置方向。检查 API 版本,然后根据它设置方向 - 如果 API > 9,那么您应该能够检测到当前设备方向。 Activity B 可以(并且应该)被允许做自己的事情,由操作系统和实际设备方向自动调整。
标签: android orientation landscape portrait