web-dev-qa-db-ja.com

manifest.xmlの画面の向きと値

フォーム内のすべてのアクティビティを横向きまたは縦向きで使用したい。ユーザーが方向を選択した場合-これはすべてのアクティビティに有効です。 「背後」のオプションの向きで試してみました。 Googleによると、オリエンテーションは以前のアクティビティに依存します。最初のアクティビティでは、setRequestedOrientationを使用して、選択したユーザーの方向を設定します。次の活動は同じ方向に従う必要があります。コードにもsetRequestedOrientationを追加する必要がありますか?または、マニフェストの「背後」パラメータを調べますか? setRequestedOrientationを入れるとonCreateが再び発生する可能性がありますか?

更新:「portrait」およびsetRequestedOrientation()を試行しました-resilt si onCreateが2回呼び出されました。問題は次のアクティビティにあります->最初のアクティビティの「ポートレート」のため-Android=同じ方向で次のアクティビティを開始しました。私が設定した「風景」方向を無視します:(

17
Kostadin

今のところ、onCreateにチェックインします。

m_bSkip = (this.getRequestedOrientation() != MyApp.sInstance.GetScreenOrientation());
if (m_bSkip)
  return;

Oncreateと入力し、画面の向きが望ましくない場合は、終了します。 onCreateを入力し、画面の向きが必要な場合-初期化を続行します。これにより、アクティビティに関連する非同期タスクを保持したり、新しいアクティビティをチェックしたりする必要なく、状況が修正されます。もちろん、onStart、onResume、onPausde、onStop ...などのすべての関数は、nullポインター例外を回避するためにこのフラグをチェックする必要があります。

0
Kostadin

アクティビティの向きを固定したい場合は、次を使用できます。

Android:screenOrientation = "portrait"

_Android:screenOrientation="sensorPortrait"
_

そのマニフェスト内のそのアクティビティの属性として。ただし、アプリケーションの起動時に以前の向きに応じて向きのランタイムを設定する場合は、onCreate()で以前の向きを確認し、setRequestedOrientation()

UPDATE:@ s.co.ttが指すように、タブレットでのより良いサポートのために_Android:screenOrientation="sensorPortrait"_を使用してください。

_Android:screenOrientation_のさまざまな値とそれぞれの機能の詳細については、ドキュメントをご覧ください。

https://developer.Android.com/guide/topics/manifest/activity-element.html#screen

22
Rajkiran
<activity
            Android:name=".Android_mobile_infoActivity"
            Android:label="@string/app_name"
            Android:screenOrientation="portrait" >
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
  </activity>
7
Android

向きの変更を処理するには、次のようにAndroidManifest.xmlに次の行を追加します:Android:configChanges="orientation|screenSize"タグの下の<activity>

   <application
        Android:allowBackup="true"
        ----------
        ---------- >
        <activity Android:name=".MainActivity"
            Android:configChanges="orientation|screenSize">
        ----------
        </activity>
        ----------
    </application>

orientationscreenLayoutscreenSizeなどの構成に変更があるたびに、アクティビティが再起動され、そのonCreateメソッドが呼び出されます。これを防ぐには、構成の変更を処理する必要があります。

2
Sandeep Yohans

プログラムで、たとえばActivity基本クラスで実行します

動作するモバイルとタブレットを試しました。誰でもポートレートまたはランドスケープを使用します。

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

アプリケーションタグ内のmanifest.xml

 <activity
        Android:name=".Login_Activity"
        Android:label="@string/app_name"
        Android:screenOrientation="portrait" />

または

 <activity
        Android:name=".Login_Activity"
        Android:label="@string/app_name"
        Android:screenOrientation="landscape" />
1

私の経験から、onCreateメソッドのすべてのアクティビティでsetRequestedOrientationを使用することをお勧めします。onCreateは再度呼び出されることはないので安全です。

0
Alexey A.

Androidマニフェストエディタに移動し、その下にMainActivity.Javaがクリックされるのを確認します。右側に新しいウィンドウが表示されます。

0
ERJAN