1. ホーム
  2. アンドロイド

[解決済み】アプリケーション全体をポートレートモードのみに設定するには?

2022-04-09 17:22:43

質問

アプリケーションをポートレートモードのみで実行するように設定するにはどうすればよいですか?アプリケーションの実行中はランドスケープモードを無効にしたいのですが、どうすればよいですか?プログラム的にどうすればよいのでしょうか?

解決方法を教えてください。

Androidのバージョンに関係なく

XMLから

を指定することができます。 android:screenOrientation="portrait" を、manifest.xml ファイル内の各アクティビティに追加します。に指定することはできません。 application タグを使用します。

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 (そのため、単にそのインターフェイスのメソッドが必要なときに、そのメソッドをいちいちオーバーライドする必要はありません)。