2013-04-19 6 views
1

저는 항상 전체 화면 및 제목 표시 줄없이 실행되는 응용 프로그램을 구현하고 있습니다. 사용자가 버튼을 클릭하고 음성 인식 기능 API를 사용하는 경우가 있습니다. 안드로이드 네이티브 창은 사용자의 목소리를 분석하기 위해 호출됩니다. 그런 다음 제목 표시 줄이 다시 표시됩니다. 문제는 숨기기위한 메서드가 onCreate 메서드에서 작동하기 때문에 다시 숨길 수 없다는 것입니다.onCreate 메서드 외부에서 Android 제목 표시 줄을 숨길 수 없습니다.

여기는 음성 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를 사용하고 있습니다.

답변

3

제목 표시 줄을 완전히 제거하려면 매니페스트의 <activity>android:theme="@android:style/Theme.NoTitleBar."을 추가하십시오.

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

편집 : 같은 뭔가 지금 볼

. startActivityForResult()으로 전화 할 때 음성 인식 활동을 시작하면 응용 프로그램이 더 이상 제어 할 수 없습니다. 이로 인해 스타일 막대 (제목 표시 줄 등 숨기기)가 더 이상 재생되지 않으며 Android에서 다시 표시합니다.

Android는 레이아웃을 부 풀리기 전에 만 변경할 수 있으므로 여기서는 requestFeature()을 사용할 수 없습니다.

startActivityForResult()이 호출되었을 때 앱이 제어 할 수 없으므로 해결책이없는 것 같습니다.

관련 문제