位置: 编程技术 - 正文

沉浸式状态栏技术方案及其中的一些坑(安卓沉浸式状态栏框架)

编辑:rootadmin
1. 沉浸式状态栏沉浸式状态栏是android 4.4开始支持的一个feature,在软件打开的时候通知栏和软件顶部颜色融为一体,这样不仅可以使软件和系统本身更加融为一体,而且让用户注意力更加集中在内容上。在ios上这是一个很早就支持的功能,但在android上则一直只能看到黑色的状态栏。google mail在抽屉上成功展示了沉浸式状态栏可见想要把内容显示在状态栏肯定是能做的。2. 技术方案虽然google官方文档和网上那些技术文章中,都轻描淡写地用<item name="android:windowTranslucentStatus">true</item>或者if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {Window window = getWindow();window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);}但设置后,则会把状态栏当做应用可用区域的一部分,而导致应用标题栏的图标/文字显示到状态栏上,和原有时间等区域重合。而设置android:fitsSystemWindows="true"则只是把整个window的背景色延展到了状态栏,实则是伪沉浸式。所以这里要做的是如何在做好沉浸式的同时不让状态栏本身内容被影响。2. 大致实现升级API LEVEL到(不需要修改targetSdkVersion,只需要编译使用新的sdk)对应用和activity的theme在values-v的style.xml里重写,设置android:windowTranslucentStatus为true对title bar的xml做一些简单修改,比如min height都做到dimens.xml里面,root layout上加一个paddingTop,分别在values/dimens和values-v/dimens设置为0dp和dp(android默认的状态栏高度)。把所有对标题栏相关的不规范padding/margin引用都纠正为使用dimens内的。自定义标题栏组件,避免在layout里面的冗余导致以后修改困难,以及在所有activity重复初始化标题栏。3. 遇到和解决的一些坑很多rom把渐变阴影给去了(CM、miui、Flyme OS等等)大部分应用了沉浸式状态栏的应用都没有考虑到这点,如腾讯地图,导致在那些rom上打开应用后状态栏一片白乎乎的看不清。尽管google的原生4.4 rom中,在设置了沉浸式状态栏后,会对状态栏区域加上一条渐变的背景,来防止亮色导致状态栏图标/字看不清,但实际应用中发现其实很多rom把渐变阴影给去了,所以在状态栏组件中,加上了绘制阴影的选项(包括5.0半透明黑条和4.4渐变阴影两种选项),会在4.4机器开启了沉浸式状态栏时,绘制阴影。状态栏高度不一致部分rom(如miui和Flyme等)修改了状态栏高度,miui改高了,而meizu上的flyme则改矮了,所以不能直接写作dp。在CustomTitleBar组件中通过重写getPaddingTop方法来兼容所有状态栏高度。插件和没有标题栏的activity插件和一些没有标题栏的activity的layout都因为沉浸式状态栏而乱了。如果不需要标题栏的话,可以直接通过在layout root上加上android:fitsSystemWindows="true"来自适应,否则同样需要做重写style样式(因为目前插件还不能直接引用主工程资源)既知的页面resize bug一个已知的在设置沉浸式状态栏后的bug: 4. 待完善点目前统一在4.4上添加了渐变阴影,而在5.0则维持系统原样(会有一条半透明黑色bar),后期可以看看是否通过白名单在部分没有修改原生状态栏行为(保留了渐变阴影)的rom上不进行重复的阴影绘制,需要有很多机器可以确认。小米的miui上,部分原生应用有把状态栏字体图标改变颜色的行为,研究了一下是rom原生带有普通模式和dark模式两种的状态栏字体颜色,而不是标准的android api,可以通过反射修改:

推荐整理分享沉浸式状态栏技术方案及其中的一些坑(安卓沉浸式状态栏框架),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:沉浸式状态栏模块,mui沉浸式状态栏实现,沉浸式状态栏模块,沉浸状态栏插件,沉浸状态栏插件,沉浸式状态栏模块,沉浸式状态栏技巧图解,沉浸式状态栏什么意思?,内容如对您有帮助,希望把文章链接给更多的朋友!

沉浸式状态栏技术方案及其中的一些坑(安卓沉浸式状态栏框架)

版权声明:本文为博主原创文章,未经博主允许不得转载。

音频焦点 (audio focus)(二) 什么叫音频焦点(audiofocus)?android系统是一个多任务操作系统,因此同一时刻允许许多任务同时工作。但是这对音频类应用来说是个挑战,因为如果多

Android 音频焦点(Audio Focus)

popupWindow使用详解 popupWindow说起来简单,但是使用略麻烦,今天带大家来看看怎么使用,先来看看效果图:先来看看布局文件吧:RelativeLayoutxmlns:android="

标签: 安卓沉浸式状态栏框架

本文链接地址:https://www.jiuchutong.com/biancheng/371063.html 转载请保留说明!

上一篇:接入LeakCanary检测内存泄露(接入hpool)

下一篇:音频焦点 (audio focus)(二)(音频焦点是什么)

  • 房屋出租需要交税多少起征
  • 购买车位的税费是多少钱
  • 代收代缴个人所得税手续费
  • 应收票据背书转让分录
  • 应付职工薪酬为什么不属于金融负债
  • 什么软件属于无线网卡
  • 月报和季度报的区别
  • 异地劳务分包要外经证吗
  • 企业所得税公益性捐赠扣除标准
  • 员工个人部分所承担的社保会计分录怎么做
  • 当月勾选认证的原材料与当月领用的原材料区别
  • 个人投资款怎么入账
  • 差旅费企业所得税扣除
  • 当月确认收入下月开票
  • 职工教育经费税前扣除标准2023年
  • 招待用酒可以抵扣所得税吗
  • 冲红发票开具
  • 营改增通知规定的税收优惠政策
  • 销售退货成本如何计算
  • 去年的暂估成本今年如何冲掉
  • 企业间借款利息开票税目
  • 进口报关单是什么样子的
  • 信用减值损失借方余额在利润表中
  • 所得税季报营业外收入怎么填
  • 工资中的话费补助是什么
  • 用代管资金付出的钱
  • 预付账款补付货款分录
  • mac桌面的文件夹怎么换到别的地方
  • 证券的投资
  • cpu性能排行榜天梯图快科技
  • linux怎么查看防火墙信息
  • win10待机后无法输入密码
  • 库存现金清查主要包括哪些内容
  • 股票红利税如何收
  • 所得税时间性差异与暂时性差异
  • hpzts04.exe是什么进程 有什么作用 hpzts04进程查询
  • typescript ??
  • 预收账款期末余额怎么算
  • php析构方法怎么用
  • php中exec
  • 餐饮费是业务招待费还是差旅费
  • 出售土地账务如何处理
  • javascriptj
  • 营业执照筹建是做什么的
  • 营改增之后增值税怎么算
  • phpcms缩略图不要自动裁剪的设置方法
  • 帝国CMS根据不同会员组显示不同内容的方法
  • 外贸企业主要做什么
  • 物流费用怎么算一般多少
  • 企业出售房屋
  • 增值税发票查询全国统一发票查询平台
  • 制造费用明细科目大全表
  • 预收账款和其他应付款
  • 安全生产费用收取方案
  • 在建工程里面的费用最后怎样结转
  • 奖金做预发年底会发吗
  • 业务招待费属于管理费用吗
  • 公司销售给客户的感谢信
  • 预付账款怎么做坏账
  • 扶贫入股分红政策
  • 差旅费借记什么科目
  • 客观原因怎么写
  • 去年的增值税专用发票可以重开吗
  • 银行存款利息的结算方式
  • 现销和赊销加一起等于销售收入吗
  • 盈余公积的会计处理
  • 发票开多了如何做凭证?
  • 长期待摊费用如何结转
  • 酒店收取餐具费合法吗
  • redhat系列
  • 要使用windows
  • window10通知
  • neoDVDstd.exe - neoDVDstd是什么进程 有什么用
  • win7系统重装后u盘读不出来
  • cocos2dx小游戏
  • 模仿文明
  • [置顶]马粥街残酷史
  • 重庆市医疗保障局
  • 哈尔滨二手房交易流程
  • 增值税进项转出补企业所得税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设