1

常にフルスクリーンでタイトルバーなしで実行するアプリケーションを実装しています。ユーザーがボタンをクリックして、音声認識機能の API を使用する状況があります。Android ネイティブ ウィンドウが呼び出され、ユーザーの声が分析されます。しかし、その後、タイトル バーが再び表示されます。問題は、それを非表示にするメソッドが onCreate メソッドで機能するため、再度非表示にできないことです。

これは音声 API を呼び出すメソッドで、タイトル バーが再び表示されます。

public void VoiceCaptureButtonClick(View v) {

       //- The title bar is properly hidden at this point.

       //Code for calling the voice recognition API: 
       Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
       intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
       intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Voice recognition Demo...");
       startActivityForResult(intent, REQUEST_CODE);


      //- Now the title bar is visible again, and I don't manage to hide it anymore.
      // if I use the method requestWindowFeature(Window.FEATURE_NO_TITLE);
      // I run into a exception : "requestFeature() must be called before adding content"

    }

編集:

上記のメソッドを呼び出すまでは、タイトル バーを非表示にし、アプリケーションを全画面表示にするために使用しているコードを次に示します。これは完全に機能します。

<application
 ...
 android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
 ...
</application>

私はアンドロイド 2.3.3 と Eclipse を使用しています。

4

1 に答える 1

3

マニフェストに を追加android:theme="@android:style/Theme.NoTitleBar."して、タイトル バーを完全に削除します。<activity>何かのようなもの:

<activity
      android:name=".Foo"   
      android:label="@string/foo" 
      android:theme="@android:style/Theme.NoTitleBar.">

編集:

今わかりました。を呼び出すとstartActivityForResult()、音声認識アクティビティが開始されたため、アプリケーションは制御できなくなります。このため、スタイル設定 (タイトル バーの非表示など) が機能しなくなり、Android ですべてが再び表示されます。

requestFeature()Android はレイアウトを拡張する前にのみこれらの変更を行うことができるため、ここでは使用できません。

startActivityForResult()が呼び出されたときにアプリが制御できないため、これに対する解決策はないようです。

于 2013-04-22T16:08:12.017 に答える