2013-04-30 3 views
21

enter image description hereAndroid 휴대 전화에서 소프트 키 표시 줄을 숨기는 방법은 무엇입니까?

내 앱이 시작되면 소프트 키 막대 (빨간색 직사각형)를 숨겨서 큰 화면을 표시하고 싶습니다.

  1. 어떻게 숨길 수 있습니까?

  2. 앱을 종료 할 때 막대를 의도적으로 표시해야합니까? 아니면 앱이 종료 된 후 자동으로 복원됩니다. 전화 전면에없는 하드웨어 키와 안드로이드 4.1

.

+0

가능한 중복 [숨기기 정제에서 시스템 바 (http://stackoverflow.com/questions/12605266/hide-system-bar-in-tablets) – jprofitt

+0

도움이 될만한 정보 : [Android ICS에서 시스템 바를 숨기는 쉬운 방법] (http://stackoverflow.com/questions/10445157/easy-way-to- hide-system-bar-on-android-ics) – jprofitt

답변

19

공식 doc

SYSTEM_UI_FLAG_LOW_PROFILE 플래그가 STATUS_BAR_HIDDEN 플래그를 대체에서

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 

을보십시오. 이 플래그가 설정되면이 플래그는 시스템 " "막대 또는 탐색 모음에 대해 "로우 프로파일"모드를 활성화합니다. 탐색 단추가 흐리게 표시되고 기타 요소가 에 숨겨져 있습니다.이 기능을 활성화하면 시스템 탐색을위한 집중력이 떨어진 게임 인 을 더 많이 만들 때 유용합니다. 버튼.

SYSTEM_UI_FLAG_VISIBLE 플래그는 시스템 바 또는 탐색 막대가 표시 될 요청하기 위해 STATUS_BAR_VISIBLE 플래그 을 대체합니다.

SYSTEM_UI_FLAG_HIDE_NAVIGATION 완전히 탐색 모음 숨기기를 요청하는 새로운 플래그입니다. 이것은 단지 작동하는지 알고 있어야합니다 일부 한이 사용하는 탐색 모음 dsets (태블릿에 시스템 표시 줄을 숨기지 않음). 시스템에 사용자 입력이 수신되는 즉시 탐색 바가 화면으로 돌아갑니다. 따라서이 모드는 주로 동영상 재생 또는 전체 화면이 필요하지만 사용자 입력이 필요하지 않은 경우에 에 유용합니다.

탐색 표시 줄의 동작은 앱에 따라 다르기 때문에 IIRC는 사용자가 앱을 떠난 후에 다시 표시되어야합니다.

+1

고마워요! 위 코드는 막대를 예상대로 숨 깁니다. 그러나 활성 앱의 화면을 터치하면 막대가 다시 나타납니다. 앱 수명주기의 나머지 부분에서 막대를 숨기려면 어떻게해야합니까? – ohho

+0

사용자가 앱과 상호 작용할 때마다 언제든지 탐색 바가 돌아옵니다. 공식 문서에 따르면 이것은 의도적 인 행동입니다.불행히도 상호 작용을 기대할 때마다 막대를 숨겨야 할 것입니다. https://developer.android.com/reference/android/view/View.html#SYSTEM_UI_FLAG_HIDE_NAVIGATION – MarsAtomic

+2

@MarsAtomic API 수준 19 이후로 SYSTEM_UI_FLAG_IMMERSIVE 및 SYSTEM_UI_FLAG_IMMERSIVE_STICKY이 (가) – user457015

27

나는 늦은 것을 알고있다. 그러나 그것은 옳은 대답이다. 그래서 당신이하려고하는 것은 몰입 형이라고 불리는 것이다. (API 19)

체크 아웃을 위해 : https://developer.android.com/training/system-ui/immersive.html

당신이 요구 한 코드는 다음과 같습니다의

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    if (hasFocus) { 
     getWindow().getDecorView().setSystemUiVisibility(
       View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
         | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
         | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
         | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
         | View.SYSTEM_UI_FLAG_FULLSCREEN 
         | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 
    } 
} 
+0

고맙지 만, 저는 직면하고 있습니다. 키보드를 열면 아래쪽 레이아웃이 잘립니다. –

+0

@PraveenPandey 당신은 허위 태그를 clippadding 추가해야합니다. – mhdjazmati

+2

마지막으로 작업입니다. 코드는 모두 있지만 포인트는 onWindowFocusChanged에 있습니다. 감사! – Mete

관련 문제