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

[解決済み】強制的に縦長モードにする方法

2022-03-26 03:27:19

質問

私のアプリケーションはランドスケープモード用に設計されていないため、強制的にポートレートモードにしようとしています。

いくつかのフォーラムを読んだ後、私はマニフェストファイルに次の行を追加しました。

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

しかし、私のデバイス(HTC Desire)ではうまくいきません。マニフェストファイルの行を無視して、quot;portrait" lo "landscape" に切り替わってしまうのです。

フォーラムをさらに読んで、マニフェストファイルにこれを追加しようとしました。

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

で、この関数は私のアクティビティクラスにあります。

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

しかし、またしても運が悪い。

どうすればいいですか?

にオリエンテーションを適用しないでください。 アプリケーション 要素に適用し、代わりにその属性を アクティビティ 要素に設定し、さらに configChanges は、後述のとおりです。

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

これは、マニフェスト・ファイル AndroidManifest.xml .