1

私は次のことを試しました:

Activity a = getActivity();
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Thread.sleep(2000);
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Thread.sleep(2000);

Androidエミュレーター。ただし、Ctrl+F11を押して画面を手動で回転させるのとまったく同じようには動作しません。

では、プログラムで向きを変更する正しい方法は何ですか?

4

2 に答える 2

4

これは正しい方法です。壊れているのはあなたのテストです。

まず、を使用しないでThread.sleepください。アプリ全体がフリーズし、何も起こらなくなります (向きの変更を含む)。代わりにHandlerを使用してみてください。

第二に、変更はすぐには起こらない可能性が高く、あなたが去った後にのみ起こりますonCreate()(おそらく他のいくつかのライフサイクルメソッド)。

第三に、方向を変更すると、Activity が破棄されて再作成されます。したがって、単一の Activity インスタンス内で前後に切り替えることはできません。

于 2012-07-02T17:56:52.583 に答える
2

デバイスを手動で回転させない限り、Androidエミュレーターは通常回転しません。実際に使用しているコードは、実際のデバイスで機能するはずです。実際に実際に試してみましたか?

于 2012-07-02T17:55:51.093 に答える