首页
学习
活动
专区
圈层
工具
发布

全屏、沉浸式、fitSystemWindow使用及原理分析:全方位控制“沉浸式”的实现

:是合成的目标Layer,不参与合成 从上表可以看出,虽然只展示了一个Activity,但是同时会有StatusBar、NavigationBar、XXXXActivity可以看出Activity是在状态栏与导航栏下面的...最后看一下translucentFlag,默认情况下,状态栏背景色与translucent半透明效果互斥,半透明就统一用半透明颜色,不会再添加额外颜色。...:fitsSystemWindows属性是系统添加状态栏padding的关键,为什么这样呢?...有一个小点需要注意下,那就是Theme中也支持fitsSystemWindows的设置 android:fitsSystemWindows">true 默认情况下上属性为...为何windowTranslucentStatus与statusBarColor不能同时生效 Android4.4的时候,加了个windowTranslucentStatus属性,实现了状态栏导航栏半透明效果

6.7K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 沉浸式状态栏的多种样式

    沉浸式状态栏大家都很熟悉,即 APP 界面图片延伸到状态栏, 应用本身沉浸于状态栏,即顶部不会默认展示系统的黑条。和尚我技术有限,理解不透彻,仅分享一下自己应用测试中可以呈现的几种样式。 ?...中添加 android:fitsSystemWindows="true",这个很重要,可以使背景图片延伸至状态栏,当然在 Java 文件中设置一样的效果; Android4.4 版本) 和 values-v21 (处理 Android5.0以后的半透明); values style.xml 的高设为 android:layout_height="wrap_content" 时图片正常展示,如果为 android:layout_height="match_parent"...和尚我的解决方法是使用 layer-list 的 drawable,类似于启动页初始加载时的样式。 <?xml version="1.0" encoding="utf-8"?

    1.9K41

    android:fitsSystemWindows 是什么意思?

    一、属性定义android:fitsSystemWindows="true" 是一个 布局属性(View 属性),用于告诉系统: “请把我的内容布局边界往内缩,让我不要被系统窗口(比如状态栏、导航栏)遮住...“系统窗口”指系统在屏幕上保留的区域,例如: 状态栏(Status Bar) 导航栏(Navigation Bar) 刘海区域(Display Cutout) 系统手势区域 当这些存在时,系统布局的可用空间...:fitsSystemWindows="true"⚙️ 五、与沉浸式状态栏的关系当你使用沉浸式布局(例如通过代码设置 Window.setDecorFitsSystemWindows(false))时,...六、常见误区误区解释“设置 true 一定能解决遮挡问题”不一定,沉浸式状态栏或透明导航栏时要手动处理 Insets。“它是控制状态栏透明度的”❌ 错误。它只影响布局边距,不控制状态栏颜色或透明度。...七、实战建议目标建议想让内容避开状态栏在根布局加 android:fitsSystemWindows="true"想让背景图铺满全屏(状态栏透明)设置 fitsSystemWindows="false"

    38410

    Android 沉浸式解析和轮子使用

    从 Android4.4 到现在(Android 9),关于沉浸式大概可以分成三个阶段: Android4.4(API 19)- Android 5.0(API 21):这个阶段可以实现沉浸式,但是表现得还不是很好...总结:这三个阶段的 Android 上 API 版本混乱,各种 Flag 林立。再加上各大厂商的定制化可谓是火上浇油,让安卓开发者异常头疼。...1.1.1 FLAGTRANSLUCENTSTATUS 当沉浸式全屏模式启用的时候,你的 activity 会继续接受各类的触摸事件。...粘性标签——这就是你设置了 IMMERSIVE_STICKY 标签时的 UI 状态,用户会向内滑动以展示系统栏。半透明的系统栏会临时的进行显示,一段时间后自动隐藏。...1.3 Android 6.0 +实现状态栏字色和图标浅黑色 使用 Android6.0 以下版本沉浸式的时候会遇到一个问题,那就是 Android 系统状态栏的字色和图标颜色为白色,当状态栏颜色接近浅色的时候

    4.1K10

    移动端web开发笔记

    black :状态栏背景是黑色。 black-translucent :状态栏背景是半透明。 如果设置为 default 或 black ,网页内容从状态栏底部开始。...:123456">123456 开启短信功能: 123456 6、 移动端邮箱识别(Android) 与电话号码的识别一样,在安卓上会对符合邮箱格式的字符串进行识别...的字体,使用样式的写法为20px .css{font-size:20px} 6、ios系统中元素被触摸时产生的半透明灰色遮罩怎么去掉 ios用户点击一个链接,会出现一个半透明灰色遮罩, 如果想要禁用,可设置...: rgba(0,0,0,0)} 7、部分android系统中元素被点击时产生的边框怎么去掉 android用户点击一个链接,会出现一个边框或者半透明灰色遮罩, 不同生产商定义出来额效果不一样,可设置-...webkit-user-modify有个副作用,就是输入法不再能够输入多个字符 另外,有些机型去除不了,如小米2 对于按钮类还有个办法,不使用a或者input标签,直接用div标签 8、winphone系统a、input标签被点击时产生的半透明灰色背景怎么去掉

    4.9K20

    再学一遍android:fitsSystemWindows属性

    对于android:fitsSystemWindows这个属性你是否感觉又熟悉又陌生呢? 熟悉是因为大概知道它可以用来实现沉浸式状态栏的效果,陌生是因为对它好像又不够了解,这个属性经常时灵时不灵的。...我相信用到android:fitsSystemWindows的朋友基本都是为了去实现沉浸式状态栏效果的。 这里我先解释一下什么是沉浸式状态栏效果。...那么借助android:fitsSystemWindows属性是如何实现沉浸式状态栏效果的呢?这个属性为什么又总是时灵时不灵呢?接下来我们就来一步步学习和揭秘。...我相信按照绝大多数人的美好设想,android:fitsSystemWindows属性就应该像是一个开关一样,设置成true就可以打开沉浸式状态栏效果,设置成false就可以关闭沉浸式状态栏效果。...CoordinatorLayout设置了android:fitsSystemWindows属性时,会对当前布局的insets做一些处理,并且调用了下面一行代码: setSystemUiVisibility

    1.8K50

    第135天:移动端开发经验总结

    不管当前有多少只手指 touchmove:当手指在屏幕上滑动时连续触发。...tel:123456">123456   开启短信功能:  123456 4、 移动端邮箱识别(Android)   与电话号码的识别一样,在安卓上会对符合邮箱格式的字符串进行识别...:  dooyoe@gmail.com 5、 ios系统中元素被触摸时产生的半透明灰色遮罩怎么去掉         ios用户点击一个链接...,会出现一个半透明灰色遮罩, 如果想要禁用,可设置-webkit-tap-highlight-color的alpha值为0,也就是属性值的最后一位设置为0就可以去除半透明灰色遮罩。...、 禁止文本缩放 当移动设备横竖屏切换时,文本的大小会重新计算(或者在内嵌浏览器中设置字体的大小),进行相应的缩放,当我们不需要这种情况时,可以选择禁止: html {   -webkit-text-size-adjust

    2.1K30

    沉浸式状态栏的三种实现方式

    沉浸式算是目前Android行业比较流行的一种App设计风格,将菜单栏北京设置为导航栏的颜色,感觉顶部状态栏像是被入侵了一样,因此称为沉浸式菜单栏。本文将介绍三种方式去实现沉浸式状态栏。 ?...Google从android kitkat(Android 4.4)开始, 给我们开发者提供了一套能透明的系统ui样式给状态栏和导航栏,这样的话就不用向以前那样每天面对着黑乎乎的上下两条黑栏了,还可以调成跟...三种方式实现沉浸式状态栏 首先看下第一种方式 系统的方式沉浸式状态栏实现 步骤一 当系统版本为4.4或者4.4以上时可以使用沉浸式状态栏 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT...android:text="你好,沉浸式状态栏"/> 接着看下第二种方式 实现思路,添加隐藏布局,然后我们动态的计算状态栏的高度,然后把这个高度设置成这个隐藏的布局的高度...实现沉浸式状态栏 * */ private void initState() { //当系统版本为4.4或者4.4以上时可以使用沉浸式状态栏 if (

    2.1K30

    挥别web移动端开发差异和经典坑

    系统中元素被点击时产生边框 描述:部分android系统点击一个链接,会出现一个边框或者半透明灰色遮罩, 不同生产商定义出来额效果不一样 解决: a,button,input,textarea{ -...安卓无此特性。 在 iOS 中,手指按住屏幕上下拖动,会触发 touchmove 事件。这个事件触发的对象是整个 webview 容器,容器自然会被拖动,剩下的部分会成空白。...描述:ios就是当唤起键盘后,整个页面会被键盘压缩,也就是说页面的高度变小,并且所有的 fixed 全部变为了 absolute ,而 android 中唤起键盘是覆盖在页面上,不会压缩页面 可以通过监听移动端软键盘弹起...时间:201908 部分安卓机器点击键盘发送相同内容 描述:部分安卓机,如oppo 快速点击键盘发送,会发出2条一样的内容,防抖与节流均不生效; 时间:201907 微信公众号 安卓在微信授权回调带#...的URL跳转会出现空白 描述:安卓手机,在微信授权回调的函数中进行跳转至的URL不能带有#,但#号可放置在结尾。

    4K20

    浅谈Android自定义锁屏页的发车姿势

    Android系统实现自定义锁屏页的思路很简单,即在App启动时开启一个service,在Service中时刻监听系统SCREEN_OFF的广播,当屏幕熄灭时,Service监听到广播,开启一个锁屏页Activity...划瓶解锁的基本思路很简单,当手指在屏幕上滑动时,拦截并处理滑动事件,使锁屏页面随着手指运动,当运动到达一定的阀值时,用户手指松开手指,锁屏页自动滑动到屏幕边界消失,如果没有达到运动阀值,就会自动滑动到起始位置...,短暂调出的状态栏和导航栏会呈半透明状态,并且在一段时间内或者用户与应用内元素进行互动的情况下自动隐藏,沉浸模式的四种状态如下图。..." android:fitsSystemWindows="true"> 半透明化”包括了状态栏和通知栏,当开发者让应用支持这个新特性的时候,状态栏和导航栏可以单独/同时变为渐变的半透明样式,如下图: ?

    3.1K80

    安卓蓝牙键盘鼠标映射_蓝牙鼠标模拟器

    相关文章:《蓝牙HID TouchScreen协议让你的安卓手机变成触摸屏》 本文源码下载地址:《仅通过蓝牙HID将安卓手机模拟成鼠标和键盘》源码 多文源码打包下载: 《仅通过蓝牙HID将安卓手机模拟成鼠标和键盘...》+《蓝牙HID TouchScreen协议让你的安卓手机变成触摸屏》两份源码打包下载 《仅通过蓝牙HID将安卓手机模拟成鼠标和键盘》+《蓝牙HID TouchScreen协议让你的安卓手机变成触摸屏...》+《通过蓝牙将安卓手机模拟成游戏方向盘-支持旋转轮胎》三份源码打包下载 【2022.04.21】源码在Android 12中运行注意事项:由于Android 12对蓝牙权限做了调整,取消了位置信息,增加了扫描...之前也在国内外的网站上找了各种方案,但是这些方案不是很好,直到谷歌发布的API28后终于有了很好的解决方案。...比如给他9个Control,然后再用7个Bit的Padding填充?这些我都试了,在安卓里虽然不能调节屏幕亮度,其它功能是不受影响的,但是到win10所有功能都受影响了。

    7.4K20

    2个函数终结状态栏6个疑难杂症

    设置布局背景的状态栏透明度 设置顶部View的状态栏透明度 设置ViewPager中Fragment的状态栏 设置滑动返回的状态栏 设置DrawLayout的状态栏 如何实现 结论 1 前言 首先推广下...2 功能 该工具类支持安卓SDK19及以上,我所设计的设置状态栏主要包括两类,其一是设置状态栏颜色,其二是设置状态栏透明度,这两大类在应用中主要包含六点。...设置状态栏颜色 设置布局背景的状态栏透明度 设置顶部View的状态栏透明度 设置ViewPager中Fragment的状态栏 设置滑动返回的状态栏 设置DrawLayout的状态栏...需要注意的是,DrawerLayout需要添加android:fitsSystemWindows="true"这个属性,另外就是和Fragment一样,需要自己在顶层最上方添加假的状态栏。...3 如何实现 首先我们看一张安卓UI架构图,如下所示。 ?

    63610

    Android layout属性大全

    android:fitsSystemWindows设置布局调整时是否考虑系统窗口(如状态栏) android:visibility定义布局是否可见            android...android:contentDescription 说明          android:OnClick 点击时从上下文中调用指定的方法     第三类:属性值为具体的像素值,如30dip,40px...android:scrollbars设置滚动条的状态         android:scrollbarStyle设置滚动条的样式         android:fitsSystemWindows设置布局调整时是否考虑系统窗口...(如状态栏)         android:scrollbarFadeDuration设置滚动条淡入淡出时间         android:scrollbarDefaultDelayBeforeFade...设置绘图时半透明质量         android:OverScrollMode滑动到边界时样式         android:alpha设置透明度         android:rotation

    2.9K90

    android之.9.png详解

    .9.PNG是安卓开发里面的一种特殊的图片,这种格式的图片通过ADT自带的编辑工具生成,使用九宫格切分的方法,使图片支持在android 环境下的自适应展示。...什么叫.9.PNG呢,这是安卓开发里面的一种特殊的图片 这种格式的图片在android 环境下具有自适应调节大小的能力。...(1)允许开发人员定义可扩展区域,当需要延伸图片以填充比图片本身更大区域时,可扩展区的内容被延展。 (2)允许开发人员定义内容显示区,用于显示文字或其他内容 ?...如下图所示: 左侧和上方的黑线交叉的部分即可扩展区域 右侧和下方的黑线交叉的部分即内容显示区域(如做button背景图时,button上文字的显示区域) 用它可以实现部分拉伸,从而实现图片在安卓系统上的完美应用...拆过系统framework-res.apk包的机油们细心点看,里面有许多有.9.PNG后缀的图片 这些图片是经过安卓的工具进行特殊处理过的,如果不处理的话,直接用PNG图就会有失真,拉伸不正常的现象出现

    1.6K60

    ArkUI-X 5.0.5 Release (API7)发布:安卓适配全面升级,跨平台能力再突破

    摘要 本文聚焦 ArkUI-X 5.0.5 Release 版本更新,重点介绍其在安卓平台适配、跨平台框架能力、开发工具易用性及组件与 API 扩展等方面的核心升级内容,同时提供版本与平台配套关系及实践指引...二、特性说明 (一)应用框架:安卓适配与跨平台能力双提升 Android Fragment 深度集成新增支持 Android Fragment 与跨平台界面的无缝对接,开发者可直接在 ArkUI-X 中调用...生命周期与内存管理优化自动回收 Activity/ViewController 销毁时的 API 插件内存,降低内存泄漏风险。...系统交互能力增强 支持沉浸式状态栏及获取状态栏避让区域信息,优化 PC / 平板等大屏设备的视觉体验。 新增 ArkUI 拖拽事件(drag)与触摸事件(touch)跨平台适配,完善交互逻辑。...5.0.5 Release 通过安卓平台深度适配与跨平台能力全面升级,进一步巩固了其作为多端开发首选框架的地位。

    70110

    android 设置标题栏背景颜色_状态栏菜单栏都在哪

    android:fitsSystemWindows=”true”属性就可以了,要不布局会跑到状态栏和导航栏下面,与导航栏和状态栏重叠,这当然不是我们希望的。...); 这行代码干什么用的,因为我们这里首页和我的页面,需要背景图片填充到状态栏,故不能使用android:fitsSystemWindows属性,故在实现上面效果时带有底部导航栏手机上就会存在一个大坑,...带有底部导航栏手机底部导航按钮会和navigationbar重叠 如下图所示: 全屏时,由于视图布局会填充到状态栏和导航栏下方,如果不使用android:fitsSystemWindows=”true...感兴趣的小伙伴可以参下:android沉浸式状态栏、fitsSystemWindows、标题栏折叠 下面我们说说怎么在界面滑动时,修改状态栏和标题栏文字颜色。...这个主要通过监听AppBarLayout滑动的距离,向上滑动,如果大于标题栏的高度,则要动态改变标题栏文字颜色,当标题栏折叠时,改变状态栏文字颜色及返回铵钮图标,同时状态栏文字颜色变成暗色。

    3.3K10

    android刘海屏适配(刘海屏或圆角适配)

    大家好,又见面了,我是你们的朋友全栈君。 安卓P版本也就是刚发布的安卓9.0 其中就加入了刘海屏相关的API。...通常,应用程序应仅使用SDK中类的官方记录部分。特别是,这意味着当您通过诸如反射之类的语义与类交互时,您不应该计划访问SDK中未列出的方法或字段。使用此类方法或字段存在破坏应用程序的高风险。...当然这个不是我们今天要讲的重点,对于非SDK行为的限制我会再抽时间好好研究后再发布一篇博客。 在安卓P发布公测版到7月底,想必不少开发者都收到了来自各大应用市场发来的邮件。...正如前面说到的安卓系统默认支持的宽高比是1.7-1.8左右,现在流行的全面屏手机分辨率宽高比大于了这个数,导致屏幕区域不能利用完全,就出现了黑色区域。解决办法也很简单。...如图: 第二张图就是开启模拟选项后显示的切口样式,当然这个缺口是模拟的,目前真机普遍的刘海屏高度在90px左右,安卓模拟器模拟的刘海屏高度为144px。

    3.1K10

    机器学习为核心,DeepMind助力谷歌开发的安卓 9「Pie」今日上线

    今日,谷歌宣布将把安卓 9 的源代码放到安卓开源项目上(AOSP),开始在所有的谷歌 Piexl 手机上用安卓 9。据介绍,安卓 9 拥有的机器学习能力能让手机变得更智能、便利、个性化。...例如,当网络拥堵时,JobScheduler 可暂缓大型网络请求。当未计量时,它可运行预读作业以改善用户体验,例如预读标题。...现代安卓 作为 Android 9 项目的一部分,谷歌的目标是现代化安卓的基础建设,以及在其上运行的 app。...据此,如果你的 app 目标指向了早于 Android 4.2(API level 17) 的平台,用户在那之后安装它时将看到一个警告对话。 让你的 app 准备好在 Android 9 中使用 ?...这能确保你在使用 Android 9 API 和目标来增强 app 时,获得 Android 9 的良好用户体验, 用 Android 9 的功能和 API 来增强你的 app 当你准备好时,就安装 Android

    3K10
    领券