322

私のアプリケーションは「横向き」モード用に設計されていないため、アプリケーションに「縦向き」モードを強制しようとしています。

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

<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">

私のアクティビティクラスのこの関数:

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

しかし、やはり運が悪い。

4

12 に答える 12

565

アプリケーション要素に方向を適用しないでください。代わりに、属性をアクティビティconfigChanges要素に適用する必要があります。また、以下に示すように設定する必要があります。

例:

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

これはマニフェスト ファイルに適用されますAndroidManifest.xml

于 2011-02-03T11:41:52.287 に答える
14

android:screenOrientation="portrait"個々の活動に使用できると思います。したがって、<activity>次のようなタグでその属性を使用します。

<activity android:name=".<Activity Name>"
    android:label="@string/app_name" 
    android:screenOrientation="portrait">
   ...         
</activity>
于 2011-02-03T11:42:35.610 に答える
3

AndroidManifest.xml にこの行がありました

<activity 
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
    android:label="@string/app_name" android:name="Project Name"
    android:theme="@android:style/Theme.Black.NoTitleBar">

私が変更したもの(追加したばかりandroid:screenOrientation="portrait"

<activity 
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
    android:label="@string/app_name" android:name="Project Name"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Black.NoTitleBar">

これは私のために物事を修正しました。

于 2014-01-21T10:20:51.063 に答える
2

補完するもの:最近アプリを更新しました。以前は横向きと縦向きの両方のモードで動作していましたが、更新されたバージョンは縦向きモードで動作する必要があるため、追加しました

android:screenOrientation="portrait"

対応するアクティビティに追加され、更新をテストしたときにクラッシュしました。それから私は追加しました

android:configChanges="orientation|keyboardHidden"

あまりにも、それは動作します。

于 2014-06-24T11:58:49.767 に答える
1

android:configChanges="orientation|keyboardHidden"あなたの活動に追加したいと思いますか?それ以外の場合、アクティビティは config-change で再開されます。そのonConfigurationChanged場合、 は呼び出されず、onCreate

于 2011-02-03T11:43:51.667 に答える