在API +17上,android:screenOrientation="sensorPortrait"无法使用。

6

我希望我的应用程序能够在纵向和反向纵向模式下运行。换句话说,我希望它能在纵向模式下运行,并使其可旋转180度!

我正在Manifest中的MainActivity标签中使用以下代码。

android:screenOrientation="sensorPortrait"

然而,这种方法只在Android 4.1.2及以下版本上有效。

Android 4.2.2及以上版本中无法使用!

我尝试在不同的手机上测试,结果都一样!如何解决?


1
在您的设备上:系统设置/显示/旋转。启用180°选项(默认情况下禁用)。 - Phantômaxx
@BobMalooga 我正在使用Android 4.2.2进行调试 | 在显示设置中我没有找到类似的东西,只有主要的旋转启用复选框。 - Alaa Salah
在我的Nexus 6上也不起作用,但启用了自动旋转。 - Yevgen Kulik
在我的MOTO 4上,我无法使sensorPortrait正常工作。它永远不支持倒立的竖屏(即reversePortrait)。然而,使用fullSensor确实可以工作,但它有一个警告,也允许横屏。对我来说这样做没问题,但如果你只想要portraitreversePortrait,你可以在你的Activity中通过onConfigurationChangednewConfig.orientation拦截方向变化,忽略或覆盖横屏变化。 - Joshua Pinter
@JoshuaPinter 你是怎么做到这一点的? - swalkner
@swalkner,谷歌“onConfigurationChanged”,你会看到一些例子。正如我在评论中所述,我们从未不允许横屏和竖屏,因此从未必须这样做。 - Joshua Pinter
1个回答

3
我知道谷歌出现了一个错别字,将sensorPortrait误写为sensorPortait

我不确定这是否是你的情况,但根据你的targetApi不同,可能会出现问题。

请使用sensorPortait,并查看编译结果。

在API 16中已经修复了此问题。


这确实是正确的答案。但是,Lint可能不允许您编译,因此可能需要在该设置上进行调整。 - Michell Bak
或者将您的targetApi设置为API >= 16。我认为即使是lint也应该没问题。 - shkschneider
针对旧的API级别通常不是一个好主意。 - Michell Bak
你们怎么压制这个错误?我已经添加了<!--suppress AndroidDomInspection -->,在Android Studio中它看起来不像红色,但在编译阶段它给我报错。http://screencloud.net/v/m0Ua - Yevgen Kulik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接