2016-07-07 2 views
6

Android 앱을 전체 화면으로 만들려고하지만 특정 화면 (내 설정 화면)에만 Android 탐색 바를 표시하려고합니다. 탐색 바를 화면에 영구히 숨기는 것은 위험하지만, 이것이 가능한지 알고 싶습니다. 내 장치를 뿌리 뽑고 Xposed 프레임 워크를 사용하는 방법을 살펴 보았습니다.프로그래밍 방식으로 몰입 형 모드를 사용/사용 중지합니다.

프로그래밍 방식으로 탐색 모음 또는 "고정 모드"를 사용하지 않도록 설정하고 나중에 다시 활성화 할 수 있습니까?

편집 : 안드로이드 이머 시브 모드 (Android Immersive Mode)를 살펴 봤지만 사용자가 가장자리에 닿으면 탐색 바가 계속 표시되는 것처럼 보입니다. 그들이 내 설정 화면으로 갈 때까지 탐색 모음의 힌트를 제거하고 싶습니다.

답변

2

예 가능합니다. 아래 코드를 사용하여 원하는 기능을 구현하십시오.

https://developer.android.com/training/system-ui/immersive.html

편집 : 1 : 자세한 내용은

// This snippet hides the system bars. 
private void hideSystemUI() { 
    // Set the IMMERSIVE flag. 
    // Set the content to appear under the system bars so that the content 
    // doesn't resize when the system bars hide and show. 
    View decorView = getWindow().getDecorView(); 
    decorView.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 // hide nav bar 
      | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar 
      | View.SYSTEM_UI_FLAG_IMMERSIVE); 
} 

// This snippet shows the system bars. It does this by removing all the flags 
// except for the ones that make the content appear under the system bars. 
private void showSystemUI() { 
    View decorView = getWindow().getDecorView(); 
    decorView.setSystemUiVisibility(
      View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
      | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
      | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
} 

은 아래 구글 문서를 참조하십시오 (해키)을 영구적으로 숨기려면이 뭔가를 시도 할 수있을 수를

decorView.setOnSystemUiVisibilityChangeListener 
       (new View.OnSystemUiVisibilityChangeListener() { 
        @Override 
        public void onSystemUiVisibilityChange(int visibility) { 

          hideSystemUI(); 


        } 
       });` 
+0

답장을 보내 주셔서 감사합니다. 내가 게시하기 전에 이것을보고 있었지만 Immersive Mode의 질문은 "사용자가 시스템 바가 정상적으로 나타나는 영역을 따라 내부 스 와이프로 시스템 바를 나타낼 수 있습니다."라고했습니다. hide()를 재정의하지 않습니까? 사용자가 내 설정 화면으로 이동할 때까지 비활성화하고 싶습니다. – Jason

+0

예, 처음 사용자가 몰입 형 모드를 열면 자습서가 표시됩니다. 그러면 아래로 스 와이프하면 전체 화면 모드가 종료됩니다. –

+0

맞고, 다른 화면으로 이동하지 않는 한 전체 화면 모드를 닫으 려하지 않습니다. 그게 내 진짜 질문이다. 사용자가 특정 화면으로 이동할 때까지 내비게이션 막대에 완전히 액세스하지 못하도록하고 싶습니다. – Jason

관련 문제