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);

在活动中调用它onCreate()

4

0 回答 0