一部のコンテンツは、画面上にインジケーターを表示せずに全画面表示すると最適に動作します。 ステータスバーまたはナビゲーション バーです。例として、動画、ゲーム、画像、 ギャラリー、書籍、プレゼンテーションのスライドがあります。これは 没入モード。このページでは、Google Meet を使用して 全画面表示でコンテンツを表示できます。
![](https://developer.android.com/static/design/media/fullscreen_landing.png?authuser=0000&hl=ja)
没入モードにより、ユーザーはゲーム中に誤って終了することを避けられます。 は、画像、動画、書籍を楽しむための没入感のあるエクスペリエンスです。 ただし、ユーザーがアプリを何度も切り替えて通知を確認する頻度には注意が必要です。 ユーザーがその場で検索したり、その他の行動を起こしたりする。没入モードにより ユーザーはシステム ナビゲーションに簡単にアクセスできなくなり、没入モードのみを使用する 単に画面を増やすだけにとどまらない、ユーザー エクスペリエンスにとってのメリットが 選択します。
WindowInsetsControllerCompat.hide()
を使用する
システムバーと WindowInsetsControllerCompat.show()
を非表示にする
戻ってきます
次のスニペットは、ボタンの表示と非表示を設定する例を示しています。 表示されます。
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { ... val windowInsetsController = WindowCompat.getInsetsController(window, window.decorView) // Configure the behavior of the hidden system bars. windowInsetsController.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE // Add a listener to update the behavior of the toggle fullscreen button when // the system bars are hidden or revealed. ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { view, windowInsets -> // You can hide the caption bar even when the other system bars are visible. // To account for this, explicitly check the visibility of navigationBars() // and statusBars() rather than checking the visibility of systemBars(). if (windowInsets.isVisible(WindowInsetsCompat.Type.navigationBars()) || windowInsets.isVisible(WindowInsetsCompat.Type.statusBars())) { binding.toggleFullscreenButton.setOnClickListener { // Hide both the status bar and the navigation bar. windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()) } } else { binding.toggleFullscreenButton.setOnClickListener { // Show both the status bar and the navigation bar. windowInsetsController.show(WindowInsetsCompat.Type.systemBars()) } } ViewCompat.onApplyWindowInsets(view, windowInsets) } }
Java
@Override protected void onCreate(Bundle savedInstanceState) { ... WindowInsetsControllerCompat windowInsetsController = WindowCompat.getInsetsController(getWindow(), getWindow().getDecorView()); // Configure the behavior of the hidden system bars. windowInsetsController.setSystemBarsBehavior( WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE ); // Add a listener to update the behavior of the toggle fullscreen button when // the system bars are hidden or revealed. ViewCompat.setOnApplyWindowInsetsListener( getWindow().getDecorView(), (view, windowInsets) -> { // You can hide the caption bar even when the other system bars are visible. // To account for this, explicitly check the visibility of navigationBars() // and statusBars() rather than checking the visibility of systemBars(). if (windowInsets.isVisible(WindowInsetsCompat.Type.navigationBars()) || windowInsets.isVisible(WindowInsetsCompat.Type.statusBars())) { binding.toggleFullscreenButton.setOnClickListener(v -> { // Hide both the status bar and the navigation bar. windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()); }); } else { binding.toggleFullscreenButton.setOnClickListener(v -> { // Show both the status bar and the navigation bar. windowInsetsController.show(WindowInsetsCompat.Type.systemBars()); }); } return ViewCompat.onApplyWindowInsets(view, windowInsets); }); }
必要に応じて、非表示にするシステムバーのタイプを指定して、 ユーザーの操作時の動作を確認します
非表示にするシステムバーを指定する
非表示にするシステムバーの種類を指定するには、次のパラメータのいずれかを渡します。
WindowInsetsControllerCompat.hide()
に送信します。
WindowInsetsCompat.Type.systemBars()
を使用して以下を行います。 両方のシステムバーを非表示にします。WindowInsetsCompat.Type.statusBars()
を使用して以下を行います。 ステータスバーのみを非表示にします。WindowInsetsCompat.Type.navigationBars()
を使用して以下を行います。 ナビゲーションバーのみを非表示にします
非表示のシステムバーの動作を指定する
WindowInsetsControllerCompat.setSystemBarsBehavior()
を使用する
非表示のシステムバーをユーザーが操作したときの動作を指定できます。
WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_TOUCH
を使用する 対応するデバイスのユーザー操作で非表示のシステムバーを表示する。 表示されます。WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_SWIPE
を使用する からスワイプするなどのシステム ジェスチャーで、非表示のシステムバーを表示する バーが非表示になる画面の端に配置します。WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
を使用する 非表示のシステムバーをシステム ジェスチャー( バーが非表示になっている画面の端からスワイプします。これらの 一時的なシステムバーは、アプリのコンテンツに重なって表示されます。場合によっては、 短時間のタイムアウトで自動的に非表示になります。