问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Android 将App的内容延伸到状态栏/导航栏

发布网友 发布时间:2022-09-25 18:56

我来回答

1个回答

热心网友 时间:2023-09-20 11:04

来自我的CSDN博客: http://blog.csdn.net/dahaohan/article/details/52175190

看过Android的桌面应用都是介样的:

如何让自己的应用也达到这般效果呢?这里就介绍几种常用的方法以及它们之间的区别。

首先展示下此次demo的布局和初始状态:

初始效果图如下:

使用这个方式首先要理解几个概念,窗口层级以及窗口background/窗口透明:
Google在API-19 以及API-21新增对状态栏/导航栏窗口透明和颜色的控制:

对应的在主题内即可控制:

这里首先要明了这里状态栏和导航栏窗口是系统级窗口而Activity对应的时应用窗口,它们属于不同的窗口层级;
然后状态栏/导航栏系统级窗口是在App应用窗口之上,故而Activity应用窗口虽然有整个屏幕的大小,但是可显示内容的区域得除去其上叠加的不透明的窗口区域。详细的窗口计算绘制可参考大神老罗的博文:
Android窗口管理服务WindowManagerService计算Activity窗口大小的过程分析

下面来使用主题控制导航栏/状态栏透明,同时看看上述两种设置透明的方式效果有何不同:

初始桌面和启动Activity效果图:

可以看到虽然导航栏/状态栏透明了,当时应用窗口显示的内容依然只是除去了两个系统窗口之外的区域,并没有衍生到导航栏/状态栏之下。

效果如下:

可以看到已经将应用的内容布局延伸到导航栏/状态栏下方了,来看看关于android:windowTranslucentStatus
android:windowTranslucentNavigation的官方说明看看来理解其与设置color transparent的区别:

根据FLAG的说明,可以看出设置该标志位等同于View申请设置:

PS:从效果图看,虽然布局延伸到状态栏导航栏区域,但是相应的内容“hello world”文字也被状态栏/导航栏遮住了。在布局根视图设置fitsSystemWindows为true可以使得,系统自动为视图添加一个状态栏/导航栏高度的padding:

效果如下:

查看SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 和 SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN的说明,可以发现其实还有两个非常接近的FLAG:

根据官方的说明提示,SYSTEM_UI_FLAG_FULLSCREEN / SYSTEM_UI_FLAG_HIDE_NAVIGATION主要用于动态切换隐藏/显示系统导航栏/状态栏;例如书籍阅读应用/视频播放应用等。而像游戏类的全屏应用则推荐使用window flag。

上述的透明导航栏/状态栏等API基本是需要API-19或是API-21才能使用的,这里还有一种API-1的方案能够实现布局内容全屏:

实际上只需要设置FLAG_LAYOUT_NO_LIMITS就足够了;这FLAG是看Android原生的Launcher / Keyguard源码,看到有用到如此设置,其窗口设置具体原理我也没有弄清..... 有大神了解可以指点下。

PS:这个套路下,使用fitsSystemWindows="true"是无效的,智能自己控制号布局位置。

热心网友 时间:2023-09-20 11:04

来自我的CSDN博客: http://blog.csdn.net/dahaohan/article/details/52175190

看过Android的桌面应用都是介样的:

如何让自己的应用也达到这般效果呢?这里就介绍几种常用的方法以及它们之间的区别。

首先展示下此次demo的布局和初始状态:

初始效果图如下:

使用这个方式首先要理解几个概念,窗口层级以及窗口background/窗口透明:
Google在API-19 以及API-21新增对状态栏/导航栏窗口透明和颜色的控制:

对应的在主题内即可控制:

这里首先要明了这里状态栏和导航栏窗口是系统级窗口而Activity对应的时应用窗口,它们属于不同的窗口层级;
然后状态栏/导航栏系统级窗口是在App应用窗口之上,故而Activity应用窗口虽然有整个屏幕的大小,但是可显示内容的区域得除去其上叠加的不透明的窗口区域。详细的窗口计算绘制可参考大神老罗的博文:
Android窗口管理服务WindowManagerService计算Activity窗口大小的过程分析

下面来使用主题控制导航栏/状态栏透明,同时看看上述两种设置透明的方式效果有何不同:

初始桌面和启动Activity效果图:

可以看到虽然导航栏/状态栏透明了,当时应用窗口显示的内容依然只是除去了两个系统窗口之外的区域,并没有衍生到导航栏/状态栏之下。

效果如下:

可以看到已经将应用的内容布局延伸到导航栏/状态栏下方了,来看看关于android:windowTranslucentStatus
android:windowTranslucentNavigation的官方说明看看来理解其与设置color transparent的区别:

根据FLAG的说明,可以看出设置该标志位等同于View申请设置:

PS:从效果图看,虽然布局延伸到状态栏导航栏区域,但是相应的内容“hello world”文字也被状态栏/导航栏遮住了。在布局根视图设置fitsSystemWindows为true可以使得,系统自动为视图添加一个状态栏/导航栏高度的padding:

效果如下:

查看SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 和 SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN的说明,可以发现其实还有两个非常接近的FLAG:

根据官方的说明提示,SYSTEM_UI_FLAG_FULLSCREEN / SYSTEM_UI_FLAG_HIDE_NAVIGATION主要用于动态切换隐藏/显示系统导航栏/状态栏;例如书籍阅读应用/视频播放应用等。而像游戏类的全屏应用则推荐使用window flag。

上述的透明导航栏/状态栏等API基本是需要API-19或是API-21才能使用的,这里还有一种API-1的方案能够实现布局内容全屏:

实际上只需要设置FLAG_LAYOUT_NO_LIMITS就足够了;这FLAG是看Android原生的Launcher / Keyguard源码,看到有用到如此设置,其窗口设置具体原理我也没有弄清..... 有大神了解可以指点下。

PS:这个套路下,使用fitsSystemWindows="true"是无效的,智能自己控制号布局位置。

Android 将App的内容延伸到状态栏/导航栏

上述的透明导航栏/状态栏等API基本是需要API-19或是API-21才能使用的,这里还有一种API-1的方案能够实现布局内容全屏:实际上只需要设置FLAG_LAYOUT_NO_LIMITS就足够了;这FLAG是看Android原生的Launcher / Keyguard源码,看到有用到如此设置,其窗口设置具体原理我也没有弄清... 有大神了解可以指点下。...

为什么国内Android应用都不适配沉浸式状态栏

沉浸式是APP界面图片延伸到状态栏, 应用本身沉浸于状态栏。当启用该模式,应用程序的界面将占据整个屏幕,系统自动将隐藏系统的状态栏和导航栏,让应用程序内容可以在最大显示范围呈现。常见问题 4.4及其以上都是可以实现沉浸式状态栏效果的,5.0及其以上可以直接在主题中设置颜色,也可以调用 Window 类...

如何实现android沉浸式状态栏

状态栏透明后,你可以选择设置其颜色或者显示背景图片。效果如下 Android4.4和5.0的实现方式不同。这里简单介绍一种 主要的操作都在style.xml 和 AndroidManifest.xml 中,Activity里面没有任何涉及到Translucent System Bar设置的代码,所以可以忽略不看。 要在Activity中使用 Translucent System Bar 特性,首先需要到AndroidM...

史上最完美的Android沉浸式状态导航栏攻略

实现步骤分析实现沉浸式导航栏分为几个关键步骤:透明状态栏、状态栏文字颜色调整、矫正显示区域以及导航栏的适配。透明状态栏关键代码如下,需使用FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS和SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN等flag来实现状态栏透明。...状态栏文字颜色Android 8.0以上支持状态栏文字颜色调整,通过...

android 怎么实现显示状态栏

View.SYSTEM_UI_FLAG_FULLSCREEN, //全屏,状态栏和导航栏不显示 View.SYSTEM_UI_FLAG_HIDE_NAVIGATION, //隐藏导航栏 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, //全屏,状态栏会盖在布局上 View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION,View.SYSTEM_UI_FLAG_LAYOUT_STABLE,View.SYSTEM_UI_FLAG_...

Android 沉浸式/透明式状态栏、导航栏

我们先来看一下透明状态栏的实现,两种常见效果图如下:虚拟导航栏并不是所有的手机都有,华为的手机多比较常见,就是上图屏幕底部按钮那块区域。设置导航栏和状态栏类似:这是官方的解释,大致意思就是我们在布局的最外层设置 android:fitsSystemWindows="true",会在屏幕最上方预留出状态栏高度的padding...

Android知识串讲(1) 底部导航栏遮挡|转屏锁定|ActionBar隐藏

方法一:隐藏 Android中布局内容被底部系统导航栏遮挡 方法二:内容上移 Android手机底部NavigationBar挡住界面的解决方法 在 Manifest.xml 文件中设置 Activity 的属性 Android布局界面隐藏顶部导航栏 Android隐藏和显示虚拟导航栏 Android 获取手机存储总大小,系统占用空间 Android 获取屏幕宽度和...

android导航栏拉到哪内容显示到哪

在Android应用中,导航栏通常是指屏幕底部的一条横条,包含了一些常用的导航功能按钮,比如返回按钮、主页按钮、最近任务按钮等。如果你在说的内容是指滑动操作,一般情况下,当用户向上滑动时,导航栏会自动隐藏以增加屏幕的可用空间,当用户向下滑动时,导航栏会自动显示,以便用户可以方便地进行导航。总结...

何为沉浸模式,沉浸式顶栏,变色龙状态栏

沉浸模式是Android 4.4的特性当启用该模式,应用程序的界面将占据整个屏幕,系统自动将隐藏系统的状态栏和导航栏,让应用程序内容可以在最大显示范围呈现,增加大屏体验,而当需要查看通知的时候只需要从顶部向下滑动就能呼出通知栏。这是谷歌对于自己的沉浸模式的解释,说白了就是全屏扩展呗。但是总有人说...

android没有状态栏和导航栏怎么回到首页

android没有状态栏和导航栏可以这样回到首页轻触导航键正中间即可返回上一级界面。如您操作不习惯,也可设置屏幕内虚拟导航按键,方法如下:进入设置-系统(导航键)-系统导航,选择屏幕内虚拟导航栏即可。

android隐藏状态栏和导航栏 iphonex导航栏状态栏尺寸 标签栏 状态栏 导航栏 状态栏导航栏标签栏在哪里 状态栏和导航栏 恢复导航栏和状态栏 手机 状态栏 导航栏 状态栏导航栏取消沉浸 删除安卓状态栏导航栏
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...9300的手机,拍照的时候因为屏幕很大自拍的时候按不到开关~前面的... 帮我的作文取个好题目 我的作文是仿写《生命 生命》这篇文章的。_百度... 40 多亿美金BD背后的超前押注者 40 多亿美金BD背后的超前押注者 ...中间有条金色拉链,上面是稍微肥点的怎么搭配外套和里衣 仿照课文生命 生命写一篇作文 要写3件事,380字左右. 如何在微信上面创建一个微信号? 东安黑豹股份有限公司公司简介 2022励志句子精选10句 自信的生命最美丽 梦幻模拟战手游兰迪乌斯转职攻略:兰迪乌斯转职选择推荐 app可以不要导航栏吗 外国人可以当中国上市公司的股东吗? 外国人能做国内上市公司的独立董事么 外籍人士可以做国企上市公司董事长吗? 人生得意须尽欢,莫使金樽空对月是什么诗? 芹菜根不要丢,泡在水里,还有大作用 beside怎么读英语,besides怎么读 哪位专家知道这是什么植物?有何价值? 我想请问一下,白芪和黄芪的区别? 260克棉衣适合10度以下的天气吗 天不生仲尼万古如长夜是谁说的 天不生仲尼万古长夜是不是杜甫写的 地被植物大全 微信h5怎么做 微信h5做的方法 iphone6pius手机刚刚被抢了怎么才能找回 iphone手机被抢,被偷,丢失 怎么办 iphone手机被抢了怎么办? iPhone被偷被盗被抢了怎么办 iPhone给抢了怎么办,怎么找回手机【求助】 iphone被抢怎么办,如何找回手机? Xperia 5 ii 隐藏导航栏 产品笔记一:使用axure8.1制作手机app底部导航栏效果 60%羊毛40%化纤 的大衣怎么洗 眼镜片上的划痕怎么修复-3种技巧教你快速解决 我的世界附魔书怎么获得 我的世界1.10.2版本里面有没有掠夺附魔书? 招商银行新版手机银行怎样,要不要升级呢。 招商银行手机银行有更新新版本吗 招商银行手机银行 关羽真有此人? 梦见蚊子在我的脚脖子上咬了2个包, 脚上咬了好多蚊子包怎么办 脚上被蚊子咬了很多包,很痒怎么办? 脚上被【蚊子咬了很多包】,然后变成水泡一样,现在已经近【一年】了,,乌疤还在,蚊子咬的那个口还有点 烧牛卤牛肉汁可以冰冻下次再用吗 求证历史上真实的关羽。 料酒在菜里起到什么作用? 适合孩子们吃的零食 双子女常常无法给另一半安全感,天蝎男爱上双子女会有什么表现呢? 消散的近义词是什么