如何在手机中仅启用纵向和反向纵向,“sensorPortrait”在手机上不起作用?

2024-01-19

我不明白为什么在活动的清单中设置“sensorPortrait”属性不能让活动进入反向纵向。这就是我在清单中设置的方式

    <activity
        android:name=".MainActivty"
        android:label="Testing"
        android:screenOrientation="sensorPortrait"
        android:windowSoftInputMode="stateHidden"
        android:configChanges="orientation">
    </activity>

上面的代码无法让我在 Moto E(4.4.4) 或 Galaxy S3(4.3) 上同时获得反向肖像和肖像,但我可以确认它可以在 Nexus 7(5.0.1) 平板电脑上工作,我尝试了其他几种答案,但这似乎是最简单的,而且它似乎不适用于我的“手机”,我是否缺少一些与使其正常工作相关的信息?

我尝试了以下链接,该链接与我的问题一样相似,但对此似乎没有任何帮助

仅纵向或反向纵向活动 https://stackoverflow.com/questions/7686512/activity-in-portrait-or-reverse-portrait-only

目前,使用“sensorPortrait”标志,其行为就像在手机中设置“portrait”一样。


如果你看一下PhoneWindowManager源代码 https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/services/core/java/com/android/server/policy/PhoneWindowManager.java#5886,您可以看到它检查内部值config_allowAllRotations并用它来确定是否允许 180 度旋转(即手机上的反向肖像)。

With a 默认值为 false https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/config.xml#598,这意味着手机上禁用了反向肖像。您会注意到sw600dp值 https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values-sw600dp/config.xml#32(即平板电脑)是正确的,因此您可以在平板电脑设备上使用所有旋转,包括反向纵向。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在手机中仅启用纵向和反向纵向,“sensorPortrait”在手机上不起作用? 的相关文章

随机推荐