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>

我正在使用 android 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 回答