1

私のアプリケーションでは、ステータスバーを透明にする必要があり(実装に成功)、電話にソフトウェアナビゲーションボタンがあり、ユーザーが下からフリックしたときにのみ表示され、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()ます。

4

0 に答える 0