[코드 블록] 몰입 형 인터페이스

상단 상태 표시 줄과 하단 탐색 표시 줄은 디스플레이 컨트롤을 차지하지 않으며 인터페이스가 포커스를 얻은 후에 숨겨집니다.

자바

/**
     * 沉浸式页面
     *
     * @param hasFocus 焦点
     */
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
    
    
        super.onWindowFocusChanged(hasFocus);
        View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE
                | 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
        );
        getWindow().setStatusBarColor(Color.TRANSPARENT);//某些弹窗弹出会导致状态栏闪烁,透明处理解决
        getWindow().setNavigationBarColor(Color.TRANSPARENT);
    }

Kotlin

/**
 * 沉浸式页面
 *
 * @param hasFocus 焦点
 */
override fun onWindowFocusChanged(hasFocus: Boolean) {
    
    
    super.onWindowFocusChanged(hasFocus)
    if (hasFocus) {
    
    
        window.run {
    
    
            decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                    or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    or View.SYSTEM_UI_FLAG_FULLSCREEN)
            //某些弹窗弹出会导致状态栏闪烁,透明处理解决
            statusBarColor = Color.TRANSPARENT 
            navigationBarColor = Color.TRANSPARENT
        }
    }
}

추천

출처blog.csdn.net/qq_36881363/article/details/105160950