システムバーを暗くする(非推奨)

このレッスンでは、Android 4.0(API レベル 14)以降でシステムバー(ステータスバーとナビゲーション バー)を薄暗くする方法について説明します。Android には、以前のバージョンでシステムバーを暗くする機能は組み込まれていません。

この方法を使用すると、コンテンツはサイズ変更されませんが、システムバーのアイコンが視覚的に後退します。ユーザーが画面のステータスバーまたはナビゲーション バー領域に触れると、すぐに両方のバーが完全に表示されます。このアプローチの利点は、バーは引き続き表示されますが、詳細は不明瞭化されるため、バーへの簡単なアクセスを犠牲にすることなく、没入感のあるエクスペリエンスを実現できることです。

ステータスバーやナビゲーション バーを省略表示にする

ステータスバーやナビゲーション バーを暗くするには、次のように SYSTEM_UI_FLAG_LOW_PROFILE フラグを使用します。

Kotlin

// This example uses decor view, but you can use any visible view.
activity?.window?.decorView?.apply {
    systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE
}

Java

// This example uses decor view, but you can use any visible view.
View decorView = getActivity().getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;
decorView.setSystemUiVisibility(uiOptions);

ユーザーがステータスバーまたはナビゲーション バーに触れるとすぐにフラグがクリアされ、バーのグレー表示が解除されます。フラグがクリアされた後でバーを薄暗くするには、アプリでフラグをリセットする必要があります。

図 1 は、ナビゲーション バーがグレー表示になったギャラリー画像を示しています(ギャラリー アプリではステータスバーが完全に非表示になり、暗くなりません)。ナビゲーション バー(画像の右側)には、ナビゲーション コントロールを表す薄い白い点が表示されます。

システムバー

図 1. 省略表示状態のシステムバー

同じギャラリー画像で、システムバーが表示されている状態を図 2 に示します。

システムバー

図 2. 表示状態のシステムバー

ステータスバーやナビゲーション バーを表示する

setSystemUiVisibility() で設定されたフラグをプログラムでクリアする場合は、次のようにします。

Kotlin

activity?.window?.decorView?.apply {
    // Calling setSystemUiVisibility() with a value of 0 clears
    // all flags.
    systemUiVisibility = 0
}

Java

View decorView = getActivity().getWindow().getDecorView();
// Calling setSystemUiVisibility() with a value of 0 clears
// all flags.
decorView.setSystemUiVisibility(0);