我如何设置它,使应用程序只在纵向模式下运行?我希望在应用程序运行时禁用横向模式。如何通过编程实现呢?


当前回答

在config.xml中的<widget>下添加<preference name="orientation" value="portrait" />对我来说很有效。

(其他解决方案要么在我的设备上不起作用,要么在构建过程中被覆盖,要么在构建过程中给出了弃用错误。)

其他回答

适用于任何Android版本

从XML

你可以在manifest.xml文件中为每个活动指定android:screenOrientation="portrait"。不能在应用程序标记上指定此选项。

从Java

另一个选择是通过编程来实现,例如在Activity基类中:

@Override
public void onCreate(Bundle savedInstanceState) {
  setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

Android 4+ (API 14+)

最后一个选项是使用活动生命周期监听器,这只在Android 4.0 (API 14+)后可用。所有事情都发生在一个自定义Application类中:

@Override
public void onCreate() {
    super.onCreate();  
    registerActivityLifecycleCallbacks(new ActivityLifecycleAdapter() {
        @Override
        public void onActivityCreated(Activity a, Bundle savedInstanceState) {
            a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
    });
}

ActivityLifecycleAdapter只是一个您需要创建的助手类,它将是ActivityLifecycleCallbacks的一个空实现(因此当您只需要其中一个方法时,您不必重写该接口的每个方法)。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    //setting screen orientation locked so it will be acting as potrait
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
}

有两种方法。

添加android:screenOrientation="portrait"在你的manifest文件 相应的活动 添加 setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 在onCreate()方法中添加到您的活动

在config.xml中的<widget>下添加<preference name="orientation" value="portrait" />对我来说很有效。

(其他解决方案要么在我的设备上不起作用,要么在构建过程中被覆盖,要么在构建过程中给出了弃用错误。)

将android:screenOrientation="portrait"添加到AndroidManifest.xml中的活动中。例如:

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