android中的状态栏
16lz
2021-12-10
google的api demos,代码
https://github.com/android/platform_development/blob/master/samples/ApiDemos/src/com/example/android/apis/view/SystemUIModes.java#L321
一、全屏,不显示状态栏
- 方法一,在manifest文件中
- 方法二,在代码中设置
注意在setContentView之前调用
// 隐藏标题栏requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏状态栏getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
在activity的布局文件的根节点设置android:fitsSystemWindows="true",是为系统的view留出空间,状态栏会在activity布局上方(相当于顺序排列),设置为false,状态栏会覆盖在activity上(相当于顶部对齐)。
设置FLAG_FULLSCREEN,就是设置不显示状态栏,如果显示,根据fitsSystemWindows设置显示位置。
二、动态显示和隐藏状态栏
//显示系统状态栏 private void showStatusBar() { View decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//隐藏状态栏的布局 | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN//内容布局填满屏幕 ); } //隐藏系统状态栏 private void hideStatusBar() { View decorView = getWindow().getDecorView(); decorView.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 ); }
三、状态栏透明
API 19 添加的FLAG_TRANSLUCENT_STATUS
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
四、设置状态栏颜色
API 21 添加的方法
window.setStatusBarColor(int color);
更多相关文章
- Android输入法的显示或隐藏
- 代码实现android手机信号监听
- Android(安卓)settings使用详解之设置优先网络
- android Button组件的属性和方法
- Android设置字体
- android textview 特出显示
- Android(安卓)显示Emoji表情字符
- MAC中设置android adb环境变量
- android 状态栏和导航栏(status and navigation bars)