私は常にランドスケープモードで起動する必要があるアクティビティを持っています。私のonCreate()
メソッドでは、画面の大きさ(幅と高さ)を使用してインターフェイスを設定していますので、アクティビティが最初は間違った向きで作成されていないことが重要です。これを行うにはタブレットでランドスケープモードを強制する
は、私がマニフェストに次き:
<activity android:name="app.myapp.WideActivity"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"/>
これが私の携帯電話に完全に正常に動作するようですが、私のタブレット(三星ギャラクシータブ、アンドロイド3.1)には以下のような起動されポートレートモードとスイッチの向きをほぼ即座に切り替えます(onCreate()
メソッドの後です)。私の電話機(android 2.3)では、onCreate()メソッドが呼び出される前にスクリーンがすでに風景です。
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
をonCreate()メソッドに配置しても効果がありません。私は何をしようとしているのですか?
お返事ありがとうございます。それは奇妙な振る舞いのように見えますが、それは肖像画を正しく扱いますが、景観は正しく扱えないようです私のアプリケーションでは、向きを確認し、必要に応じて高さと幅の値を入れ替えることができます。これにより、私の活動が正しく表示されます。 –
実際には、私は 'configChanges =" orientation "'を取り除くと、デバイスが向きを変えてUIが自動的に修正されるときに、onCreate()メソッドが再度呼び出されることを考えました。また、onCreateメソッドでチェックを追加して、ポートレートモードでUIを描画しないようにすることもできます –