我试图为我的应用程序强制“纵向”模式,因为我的应用程序绝对不是为“横向”模式设计的。

在阅读了一些论坛后,我在我的清单文件中添加了这些行:

<application 
  android:debuggable="true"
  android:icon="@drawable/icon" 
  android:label="@string/app_name"
  android:screenOrientation="portrait">

但它不能在我的设备(HTC Desire)上使用。它从“纵向”切换到“横向”,忽略清单文件中的行。

在更多的论坛阅读后,我试图在我的清单文件中添加以下内容:

<application 
  android:debuggable="true"
  android:icon="@drawable/icon" 
  android:label="@string/app_name"
  android:configChanges="orientation"       
  android:screenOrientation="portrait">

这个函数在activity类中

public void onConfigurationChanged(Configuration newConfig)
{
    super.onConfigurationChanged(newConfig);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

但是,还是不走运。


当前回答

我认为android:screenOrientation="portrait"可以用于个人活动。所以在<activity>标签中使用该属性,如下所示:

<activity android:name=".<Activity Name>"
    android:label="@string/app_name" 
    android:screenOrientation="portrait">
   ...         
</activity>

其他回答

不要将定向应用到应用程序元素,相反,您应该将属性应用到活动元素,并且您还必须按照下面所述设置configChanges。

例子:

<activity
   android:screenOrientation="portrait"
   android:configChanges="orientation|keyboardHidden">
</activity>

这应用于清单文件AndroidManifest.xml。

要让整个应用运行在完全竖屏模式或完全横屏模式,你需要做一件非常简单的事情。

转到应用程序的manifest文件夹 查看定义了intent-filter的活动。它基本上是应用启动时打开的第一个活动。 在这个活动中添加android:screenOrientation="portrait"

这将使你的整个应用程序运行在纵向模式,或者你也可以设置它运行在横向模式。

设置强制纵向或横向模式,分别添加线条。

导入如下:

import android.content.pm.ActivityInfo;

在setContentView(r.b ayout.activity_main)上面添加下面一行;

肖像:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//Set Portrait

Landscap:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//Set Landscape

这肯定有用。

我认为android:screenOrientation="portrait"可以用于个人活动。所以在<activity>标签中使用该属性,如下所示:

<activity android:name=".<Activity Name>"
    android:label="@string/app_name" 
    android:screenOrientation="portrait">
   ...         
</activity>

根据Android的文档,你也应该经常包括screenSize作为可能的配置更改。

android:configChanges="orientation|screenSize"

如果应用程序的目标是API级别13或更高(由 minSdkVersion和targetSdkVersion属性),那么您也应该 声明"screenSize"配置,因为当a 设备在纵向和横向方向之间切换。

此外,如果你都包括值keyboardHidden在你的例子,你不应该也考虑locale, mcc, fontScale,键盘和其他?