Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 活动没有选择正确的方向_Android_Android Ui_Android Orientation - Fatal编程技术网

Android 活动没有选择正确的方向

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

对于我的应用程序,我需要在手机上将方向设置为纵向,并在平板电脑上允许纵向和横向。我已经看过了答案,但我想尝试单独使用xml来做同样的事情。 我尝试在我的清单中添加以下行

<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,看看它是否强制执行

      您是否在清单中添加了支持屏幕也请检查此项。我不明白您在使用res/values-sw600dp/dimens.xml做什么。文档提到您需要提供不同的绘图和布局。在所有情况下都不需要有不同的布局。我的UI在平板电脑和手机上有相同的布局,但尺寸不同。您是否检查我在评论中发布的链接。我想你误解了。请检查链接的清晰度。通读检查此链接手机的res/layout/main_activity.xml;平板电脑的res/layout-sw600dp/main_activity.xml。你需要在文档中有不同的布局。同时检查此链接是否在清单中添加了支持屏幕检查这个。我不明白你在用res/values-sw600dp/dimens.xml做什么。文档提到你需要提供不同的绘图和布局。没有必要在所有情况下都有不同的布局。我的UI在平板电脑和手机上有相同的布局,但尺寸不同。你检查了我在评论中发布的链接了吗。我想你是我明白。请检查链接是否清晰。仔细阅读此链接检查手机的res/layout/main_activity.xml,平板电脑的res/layout-sw600dp/main_activity.xml。您需要在文档中有不同的布局。同时检查此链接平板电脑正在从-sw600dp读取字符串。平板电脑也正确理解值“-1”。T平板电脑正在从-sw600dp读取字符串。此外,平板电脑正确理解值“-1”。
      <integer name="orientation_supported">1</integer>
      
      <integer name="orientation_supported">-1</integer>