2011-01-31 30 views
3

私のAndroidアプリケーションは以下のように動作します。 1)ポートレートモード:タイトルバーで 2)風景モード:(なぜならAndroid:FEATURE_NO_TITLEを無効にする方法

)高さ制限のタイトルバーがないと私はrequestWindowFeature(Window.FEATURE_NO_TITLE)を使用して)1を実現することができます知っているが、 私は動的にどのように変更することができます1)から2)私は自分の携帯電話を回転するとき?

答えて

4

This answerは(とき向きの変化が起こるよう)あなたが活動のライフサイクル中に機能を変更することはできません示唆ので、彼らはあなた自身のタイトル(「::編集::」の部分へのジャンプ)を実装することをお勧めします:

Hiding Title in a Fullscreen mode?

::編集::まあ

あなたが動的に表示され、私はあなたがそれを行うことができるかどうかわからない活動の存続期間中に、それを隠そうとしている場合setContentView()が呼び出される前に設定する必要があるウィンドウの機能について言及されている注釈のため、公式ウィンドウタイトル。あなたがあなた自身のタイトルバーを実装している行い、動的に表示して、それを隠すことができ

ことの一つは...私は、一緒にあなたが向きを変えたとき以来Ntheの右のトラック

oをあなたを設定する必要があり、この例を置きますあなたのアプリはライフサイクルの変更を経て、onCreateにあなたのタイトルを表示したり隠したりすることができます。

http://stuffthathappens.com/blog/2008/11/26/android-lifecycle-triggers-part-2/

Diagram of lifecycle when orientation changes

それとも、ランドスケープモードのために完全に異なるレイアウトを指定:

http://developer.android.com/resources/tutorials/hello-world.html

風景レイアウト

あなたは土地のために異なるデザインをしたいですあなたのレイアウトXMLファイルを/ res/layout-landの中に置きます。レイアウトが変更されると、Androidは自動的にここに表示されます。この特別なランドスケープレイアウトが定義されていないと、Androidはデフォルトレイアウトを拡張します。

+1

ありがとう、私はアプリケーションのライフサイクル中に機能を変更できないと思っていました。私は自分の電話機を回転させるたびにonCreateが呼び出されるのを忘れていました。 – tokentoken

+0

@tokentoken - 幸せに助けてください –

5

電話機を回転させると、アクティビティがシャットダウンされて再作成されます。 onCreateの中で、表示のインスタンス(getWindowManager().getDefaultDisplay()を使用)を取得し、その幅、高さ、および/または回転を照会して、コンテンツビューを設定する前にタイトル機能が必要かどうかを判断できます。

+0

ありがとうございました!私はConfigurationからローテーション情報を得て、成功しました。 – tokentoken

関連する問題