美文网首页
Android app内容延伸到状态栏/导航栏(页面内容全屏展示

Android app内容延伸到状态栏/导航栏(页面内容全屏展示

作者: 可乐_JS | 来源:发表于2023-05-07 11:27 被阅读0次
  • 首先要明确一下Android窗口的感念:
    系统级窗口:手机屏幕所有可见部分,我们常说的状态栏和导航栏都是系统级的窗口内容;
    应用级窗口:Android中的Activity所展示的部分,一般不包含状态栏和导航栏;
1.设置window占满全屏&背景透明:
// Theme设置
<!--window占满全屏-->
<item name="android:windowFullscreen">true</item>
<!--window设置背景-->
<item name="android:windowBackground">@color/transparent</item>
2.设置状态栏和导航栏透明:
// Theme设置
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>

// 代码设置
getWindow().setStatusBarColor(Color.TRANSPARENT);
getWindow().setNavigationBarColor(Color.TRANSPARENT);
  • 此时状态栏和导航栏透明,可见状态栏和导航栏区域背景为桌面背景
  • 接下来需要将页面内容延伸到状态栏和导航栏
3.设置页面内容延伸到系统状态栏和导航栏:
// Theme设置
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>

// 代码设置
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
4.设置系统自动为视图添加一个状态栏/导航栏高度的padding:
rootView.setFitsSystemWindows(true);
//或者xml view标签加入
android:fitsSystemWindows="true"
以上只是内容延伸到状态栏和导航栏,如需全屏展示(例如:启动页)请参见Google官方启用全屏模式:https://developer.android.com/training/system-ui/immersive?hl=zh-cn

相关文章

网友评论

      本文标题:Android app内容延伸到状态栏/导航栏(页面内容全屏展示

      本文链接:https://www.haomeiwen.com/subject/ydmhsdtx.html