2012-02-26 3 views
0

レイアウトフォルダとレイアウトポートフォルダがあり、それぞれに別々のmain.xmlレイアウトがあるアプリがあります。Androidスクリーンオリエンテーションの問題

携帯電話をportrairに傾けてアプリを起動すると、ポートレートmain.xmlが正常に読み込まれます。およびその逆。しかし、電話をかけると、同じmain.xmlが保持されます。

たとえば、デバッグを開始するとアプリが読み込まれ、携帯電話がポートレートで起動されると、ポートレートmain.xmlが読み込まれ、携帯電話が傾いて向きが変わっても方向は変わりますが、同じメイン.xmlレイアウト。ランドスケープレイアウトを取得していません。

逆の場合は、電話機でデバッグを開始すると、ランドスケープmain.xmlがロードされますが、電話機を傾けても、それが修正されても、レイアウトの位置

android:screenOrientation="unspecified" 
android:launchMode="singleTask" 
android:configChanges="orientation|keyboardHidden" 
+1

アクティビティのonConfigurationChangedメソッドをオーバーライドしますか? – m1ntf4n

+0

いいえ、私はそれをオーバーライドしていません – Jesse

+0

あなたはonConfigurationChangedを上書きすべきだと思います。そうでなければアンドロイドはonCreateを再び呼び出すでしょう。 – drulabs

答えて

1

あなたの活動の方法onConfigurationChangedをオーバーライドしていない場合、あなたはあなたのAndroidManifestにラインandroid:configChanges="..."を削除することができます。この行がなければ、方向の変更によってアクティビティが再開され、正しいレイアウトが適用されます。

+0

それは、ありがとう! – Jesse

+0

問題ありません;) – m1ntf4n