Android 活动没有选择正确的方向
对于我的应用程序,我需要在手机上将方向设置为纵向,并在平板电脑上允许纵向和横向。我已经看过了答案,但我想尝试单独使用xml来做同样的事情。 我尝试在我的清单中添加以下行Android 活动没有选择正确的方向,android,android-ui,android-orientation,Android,Android Ui,Android Orientation,对于我的应用程序,我需要在手机上将方向设置为纵向,并在平板电脑上允许纵向和横向。我已经看过了答案,但我想尝试单独使用xml来做同样的事情。 我尝试在我的清单中添加以下行 <activity android:theme="@style/Theme.ActionBarLargeTitle" android:name="com.work.activities.MyActivity" android:screenOrientation="@integer/orientation_supported
<activity
android:theme="@style/Theme.ActionBarLargeTitle"
android:name="com.work.activities.MyActivity"
android:screenOrientation="@integer/orientation_supported"
android:exported = "false"/>
在res/values/dimens.xml中,我添加了以下行(1对应于纵向)
1
我创建了另一个文件res/values-sw600dp/dimens.xml,我在其中添加了(-1对应于未指定)
-1
在手机上,此代码工作正常,活动始终处于纵向模式。在Nexus 10英寸平板电脑(宽800dp)上,此操作失败,并在纵向模式下修复。此方法是否有任何错误
编辑:
我已经检查了各种值,并且在所有情况下(在所有设备中)将拾取res/values/dimens.xml中的值。如果缺少此值,则在安装应用程序时会出现错误“安装错误:安装\u解析\u失败\u意外的\u异常”。问题在于您使用的是
-sw600dp
限定符,该限定符实际上不会检查方向,而是检查最短边是否至少为600dp.尝试使用-land
或-port
限定符。问题是您使用的是-sw600dp
限定符,它实际上不检查方向,而是检查最短边是否至少为600dp。尝试使用-land
或-port
限定符。有两个可能的问题在这里:
- 确保您的平板电脑正在从-sw600dp文件夹读取数据。我知道这对于800dp设备来说可能听起来很奇怪。检查的简单方法是在两个文件夹中添加一个键相同的字符串,并显示在
中TextView
- 请确保您的平板电脑了解-1值。我检查过的手机了解。请尝试更改为0,看看它是否强制执行
- 确保您的平板电脑正在从-sw600dp文件夹读取数据。我知道这对于800dp设备来说可能听起来很奇怪。检查的简单方法是在两个文件夹中添加一个键相同的字符串,并显示在
中TextView
- 请确保您的平板电脑了解-1值。我检查过的手机了解。请尝试更改为0,看看它是否强制执行
- 这里有两个可能的问题:
<integer name="orientation_supported">1</integer>
<integer name="orientation_supported">-1</integer>