在Android中,系统栏是指状态栏和导航栏,有时候我们可能需要隐藏或避开这些系统栏,以下是一些方法:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
这将隐藏状态栏和导航栏,但用户可以通过滑动屏幕边缘来重新显示它们。
View decorView = getWindow().getDecorView();
int flags = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(flags);
这将隐藏状态栏和导航栏,并且用户需要通过下拉通知栏或者按下导航栏的返回键来重新显示它们。
ViewCompat.setOnApplyWindowInsetsListener(view, (v, insets) -> {
WindowInsetsCompat newInsets = insets.consumeSystemWindowInsets();
return newInsets;
});
这将隐藏状态栏和导航栏,并且可以根据需要进行自定义处理。
需要注意的是,以上方法只是隐藏或避开系统栏,但并不会禁用它们的功能。在某些情况下,系统栏可能会自动显示,例如接听电话或者收到通知时。
领取专属 10元无门槛券
手把手带您无忧上云