私のアプリケーションでは、ステータスバーを透明にする必要があり(実装に成功)、電話にソフトウェアナビゲーションボタンがあり、ユーザーが下からフリックしたときにのみ表示され、X時間後に消えるはずです(システムによって定義されていると思います)。私は多くのチュートリアルを見てきましたが、それらはすべて、ステータスバーも非表示にする没入モードを有効にする方法を示しています。これは、ステータス バーとナビゲーション ボタンの両方を非表示にするコードです。
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Log.d("LogTag", "onFocusChanged");
if (hasFocus) {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
要件のように機能させることができません。
透明なステータス バーを作成するコードが必要な場合は、次の作業コードを使用してください。
Window window = getWindow();
WindowManager.LayoutParams winParams = window.getAttributes();
winParams.flags &= ~WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
window.setAttributes(winParams);
window.setStatusBarColor(Color.TRANSPARENT);
Activityで呼び出しonCreate()
ます。