Android沉浸式状态栏

来源:互联网 发布:数据分析 市场 编辑:程序博客网 时间:2024/06/05 08:43
  • Android 4.4以上实现方式
  • Android 5.0以上实现方式

Android 4.4以上实现方式

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {    Window window = getWindow();    // Translucent status bar   window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);}

Android 5.0以上实现方式

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {    window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);    window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);    window.setStatusBarColor(Color.TRANSPARENT);}

ps:

fitSystemWindows官方描述:Boolean internal attribute to adjust view layout based on system windows such as the status bar. If true, adjusts the padding of this view to leave space for the system windows. Will only take effect if this view is in a non-embedded activity.简单描述:这个属性的作用是让view可以根据系统窗口(如status bar)来调整自己的布局,如果值为true,就会调整view的paingding属性来给system windows留出空间(即给view添加一个值为状态栏高度的top padding)。