3

私が見つけたsetRequestedOrientationに関するAndroidのドキュメントを注意深く読んでください:

  • このアクティビティの目的の方向を変更します。アクティビティが現在フォアグラウンドにあるか、画面の向きに影響を与えている場合、画面はすぐに変更されます(アクティビティが再開される可能性があります)。それ以外の場合、これは次にアクティビティが表示されるときに使用されます。

「それ以外の場合、これは次にアクティビティが表示されるときに使用されます。」素晴らしいサウンド-アクティビティが表示される直前に設定します。OOOps。これをどこと呼ぶのですか?実際、onCreateの前には、アクティビティへの参照はありません。次に、画面の向きを設定するにはどうすればよいですか?

更新:-私の考えは、希望する方向で直接アクティビティを作成することです。ユーザーが設定から向きを選択すると(画面の向きとその後に開始されるすべてのアクティビティを設定します)、マニフェストの値を使用するかどうかなど、目的の向きを知ることができます。目的の向きがわかっている場合は、アクティビティを作成する理由はありません。向きを設定して、もう一度作成してください。

4

4 に答える 4

1

それを onCreate に入れるのはかなり合理的なようです。

http://russenreaktor.wordpress.com/2010/01/03/solved-set-screen-orientation-programmatically/

それがうまくいかない場合は、 onPostCreate(Bundle) オーバーライドされたメソッドに入れてみてください。

protected void onPostCreate (バンドルの savedInstanceState)

導入されたバージョン: API レベル 1 アクティビティの開始が完了すると呼び出されます (onStart() および onRestoreInstanceState(Bundle) が呼び出された後)。通常、アプリケーションはこのメソッドを実装しません。これは、アプリケーション コードの実行後にシステム クラスが最終的な初期化を行うためのものです。

派生クラスは、このメソッドのスーパー クラスの実装を呼び出す必要があります。そうでない場合は、例外がスローされます。

于 2012-04-24T13:45:13.393 に答える
-1

アクティビティの画面の向きを設定する場合は、AndroidManifest.xml ファイルで切り取ったものを使用します。

<activity android:screenOrientation="portrait" android:name="MyActivity"></activity>

また

<activity android:screenOrientation="landscape" android:name="MyActivity"></activity>
于 2012-04-24T13:19:10.290 に答える