2014-04-08 2 views
1

Android 애플리케이션에서 한 번 탭을 통해 몰입 형 뷰를 종료하도록 지원을 추가했습니다. 나는몰입 형 뷰 시스템 제스처 종료시 사용되는 시스템 UI 가시성 플래그 무시

View.SYSTEM_UI_FLAG_VISIBLE 

플래그를 사용하여 프래그먼트가 크기가 조정되고 작업 표시 줄이 프래그먼트와 겹치지 않도록합니다.

표준 시스템 제스처를 통해 몰입 형 뷰를 종료하면 작업 표시 줄이 조각과 겹칩니다. 이것은 "Non-Sticky Immersion 사용"아래에있는 here의 표준 플래그를 사용하는 것으로 가정합니다.

// 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() { 
    mDecorView.setSystemUiVisibility(
     View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
     | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
     | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
} 

시스템 제스처를 통해 몰입감을 종료하고 단일 탭 구현과 동일한 방식으로 동작하고 싶습니다. 시스템 제스처가 사용하는 시스템 UI 플래그를 무시할 수 있습니까?

+0

당신은 TouchEvent를 직접 잡아야하고 비 몰입 형 또는 시야 탐색 플래그로 SystemUIVisibility를 조정해야합니다. SystemUI가 자동으로 애니메이션을 적용합니다 – DroidBender

답변

2

기본 제스처 플래그를 재정의 할 방법이 없습니다.

시스템 바가 표시 될 때 조각의 크기를 조정하는 것이면 View.OnSystemUiVisibilityChangeListenermDecorView으로 등록해야합니다. 이 청취자에게는 시스템 UI 변경 사항이 통지됩니다. 막대가 표시되면 (이유가 무엇이든) 막대를 표시하도록 필요한 변경을 수행하여 조각의 크기를 조정할 수 있습니다. 청취자 사용 방법에 대한 예제는 https://developer.android.com/training/system-ui/visibility.html을 참조하십시오.

+0

어쩌면 조각을 어떻게 크기를 조정할 수 있는지 추가해야합니다 .. 잘하면 .. –

관련 문제