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,
切换回来之后再设置回去。
浙公网安备 33010602011771号