2012-03-04 4 views
2

私は、縦向きで始まる簡単な画面を作っています。最初に横向きに切り替えると、完全に機能します。 私がポートレートに戻ってみると、画面は横長のままです。最初のターンの後にAndroidの向きが変わらない

何が起こっているのアイデア?その "1" の活動の

マニフェストコードが

<activity 
      android:name=".LoginActivity" 
      android:label="Login" 
      android:configChanges="orientation|keyboardHidden|keyboard" > 
      <intent-filter> 
       <action android:name="com.DCWebMakers.Vairon.LOGINACTIVITY" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
+1

このXMLは、アプリがオリエンテーションの変更を処理すると言います。だから、どこにコードを表示するのがもっと役に立つでしょう。 Althoug API 13+をターゲットにしている場合は、screenSizeも処理する必要があります –

+0

私の活動では方向変更が処理されていないため、これが横向きのままになりますか? – Vairon

答えて

2

あなたのマニフェストは、Androidに嘘をついています。あなたのandroid:configChangesには、あなたのアプリがオリエンテーションの変更を処理すると書かれていますが、まだ変更されていません。 Docs

アンドロイド:configChanges

リストの設定は、活動自体を処理することに変更します。実行時に構成の変更が発生すると、アクティビティーはデフォルトでシャットダウンして再始動しますが、この属性で構成を宣言すると、アクティビティーが再始動されなくなります。代わりに、アクティビティは実行されたままで、onConfigurationChanged()メソッドが呼び出されます。

注:この属性の使用は避け、最後の手段としてのみ使用してください。構成の変更により再起動を適切に処理する方法の詳細については、Handling Runtime Changesを参照してください。

0

この1回限りのスイッチ動作を示す既知のものがあります。そのため、エミュレータを使用している場合は問題が説明されています。

私はどちらかと思うだろう、最初のオリエンテーションスイッチを説明するために:あなたはスイッチが、configChanges="orientation...フラグが設定されていない他の活動をしたとき

  1. あなたはLoginActivity上で、実際にはありませんよ。

  2. または、ホーム画面などでアプリを起動する前に向きを変更したことがあります。あなたのアプリは横から起動し、向きを変えようとすると応答しません。

関連する問題