システムバーは、通知の表示や、デバイス ステータスの通信、デバイスの操作を行うための専用の画面領域です。システムバーはステータスバーとナビゲーションバーで構成されており、通常はアプリと同時に表示されます。
ここでは、システムバー、システムバーを構成するステータスバーとナビゲーションバーについて学習します。
カリキュラムのサンプル コードは、「GUIコンポーネントを含むJavaコードの実行」に示す手順で実行して確認できます。 またナビゲーションバーをAndroidエミュレータで表示するために、「Androidエミュレータでナビゲーションバーの表示」に示す手順を実行します。ステータスバーの省略表示
ステータスバーの省略表示は、ステータスバーが存在したまま各アイコンが非表示になるため、バーに簡単にアクセスできるという利便性を犠牲にすることなく、没入型のユーザー体験を実現できます。
ステータスバー内のアイコンが省略されて表示されます。ステータスバー内のアイコンが通常次のように表示されます。
ステータスバーの省略表示を行うと、次のように左側のアイコンなどが非表示となります。
次のJavaコードを「MainActivity.java」に作成することにより、ステータスバーの省略表示を行います。
MainActivity.java
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE; // #①
decorView.setSystemUiVisibility(uiOptions);
}
}
- #①は、「View.SYSTEM_UI_FLAG_LOW_PROFILE」フラグを設定
ステータスバーの非表示
ステータスバー(ならびに、必要に応じてナビゲーション バー)を非表示にすると、コンテンツが利用できる表示領域が増えるため、没入型のユーザー体験を実現できます。
次のようにステータスバーを非表示にします。
次のJavaコードを「MainActivity.java」に作成することにより、ステータスバーの非表示を行います。
MainActivity.java
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ステータスバーを消す
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); // #①
}
}
- #①は、「WindowManager.LayoutParams.FLAG_FULLSCREEN」フラグを設定
ナビゲーションバーの非表示
ナビゲーションバーを非表示にすると、コンテンツが利用できる表示領域が増えるため、没入型のユーザー体験を実現できます。
次のようにナビゲーションバーを非表示にします。
次のJavaコードを「MainActivity.java」に作成することにより、ナビゲーションバーの非表示を行います。
MainActivity.java
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View decor = getWindow().getDecorView();
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); // #①
}
}
- #①は、「View.SYSTEM_UI_FLAG_HIDE_NAVIGATION」フラグを設定
本節の説明は以上になります。