android: 隐藏状态栏导航栏后恢复正常显示

一,代码:

public class FrameActivity extends AppCompatActivity {

    private View pushView;
    private int deOptions;   //系统可见性的选项
    private View decorView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);

        //获取DecorView
        decorView = getWindow().getDecorView();
        //保存原显示选项
        deOptions = decorView.getSystemUiVisibility();
        
        setContentView(R.layout.activity_frame);
    }
    
    //显示bar
    public void displayBar(View view) {
        decorView.setSystemUiVisibility(deOptions);
    }

    //隐藏状态栏和导航栏
    public void hideBar(View view) {
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        );
    }

二,说明

在隐藏导航栏状态栏之后,如果还需要恢复显示,
就需要在切换之前,把切换前状态栏参数保存起来,
这里我们用了变量deOptions,
切换回来之后再设置回去。

posted @ 2025-05-10 09:04  刘宏缔的架构森林  阅读(59)  评论(0)    收藏  举报