SYSTEM_UI_FLAG_IMMERSIVEとSYSTEM_UI_FLAG_IMMERSIVE_STICKYとの違い
API Level 19からは全画面表示をしたいときにどっちかのフラグをセット(View.setSystemUiVisibility()
)することで没入感をより高めることができる。
SYSTEM_UI_FLAG_HIDE_NAVIGATION
とSYSTEM_UI_FLAG_FULLSCREEN
とを合わせてセットすることで、システムUIが画面外に押し出されている状態になる。外にあるUIを引っ張り出すように(上か下エッジからスワイプ)すると表示される。二つのフラグの違いは次の通り。
SYSTEM_UI_FLAG_IMMERSIVE
: システムUIが引っ張り出されたら、システムUIが消えた状態に戻らないSYSTEM_UI_FLAG_IMMERSIVE_STICKY
: システムUIが引っ張り出されたあと、しばらくするとまたシステムUIが引っ込む
IMMERSIVE
の方を使い、View#setOnSystemUiVisibilityChangeListener()
にリスナをセットすることでシステムUIの見え方が変わったイベントを受け取れる。このリスナの中で独自のUIを表示させるようにして、時間とか特定の操作で再びimmersiveな状態に遷移させれば良い。
システムUIが無いレイアウトに設定するためのフラグも一緒にセットしてやればカクついたりしない。詳しくは公式リファレンスを。