- 1、本文档共53页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【2017年整理】刨根问底-论Android“沉浸式”
刨根问底-论Android“沉浸式” 网上谈论“沉浸式”的文章多的不可胜数,有人把“沉浸式”叫做“沉浸式状态栏”,还有人称作为“透明状态栏”、“变色状态栏”等。 这里我们先给出“沉浸式”的直观感受,引用“知乎”网友的答案 使用带虚拟键的手机才能明显感觉到沉浸式所带来的变化:状态栏、导航栏隐藏。 而对于使用实体按键的手机的用户来说,“沉浸式”所带来的变化仅仅是状态栏隐藏,事实上,状态栏隐藏在之前也很常见,各种国产应用启动时都会隐藏状态栏。 出处来自:为什么在国内会有很多用户把 ?透明栏?(Translucent Bars)称作 ?沉浸式顶栏??感兴趣的朋友可以去阅读下。 把上面的文字翻译成图片的话,标准的“沉浸式”大致是这个效果。 标准沉浸式.gif App默认是全屏的,用户可以从顶部或者底部“滑出”状态栏和导航栏,一段时间后状态栏和导航栏会自动消失。 嗯,没错,这个才是标准的“沉浸式”。有了以上的定义,下面这两种常见的效果,只能说改变了状态栏的“样式”(Translucent Bar倒是比较贴近)。但是,他们不是“沉浸式”。 非沉浸式.png 接下来,将进入本篇文章的主题,我们会从两个方面去“论沉浸式”。 4.4之前,谷歌是如何提供类似“沉浸式”的体验的 如何以最简单的方式实现“状态栏”与App“合二为一”的效果(真个真的不叫沉浸式啦~) setSystemUiVisibility4.0之后(3.0也支持,这里暂时只讨论手机平台),官方提供了这个方法,可以改变系统UI的可见性,使用方法如下:int flag = View.SYSTEM_UI_FLAG_FULLSCREEN;getWindow().getDecorView().setSystemUiVisibility(flag);多个值可使用“|”操作符,比如:int flag = View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;getWindow().getDecorView().setSystemUiVisibility(flag); 系统提供了很多类似View.SYSTEM_UI_FLAG_xxx的常量,具体有下面几种: SYSTEM_UI_FLAG_FULLSCREEN(4.1+):隐藏状态栏,手指在屏幕顶部往下拖动,状态栏会再次出现且不会消失,另外activity界面会重新调整大小,直观感觉就是activity高度有个变小的过程。 SYSTEM_UI_FLAG_FULLSCREEN.gif SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN(4.1+):配合SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN一起使用,效果使得状态栏出现的时候不会挤压activity高度,状态栏会覆盖在activity之上。 SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN.gif SYSTEM_UI_FLAG_HIDE_NAVIGATION(4.0+) :会使得虚拟导航栏隐藏,但同样用户可以从屏幕下边缘“拖出”且不会再次消失,同时activity界面会被挤压。 SYSTEM_UI_FLAG_HIDE_NAVIGATION.gif SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION(4.1+):配合 SYSTEM_UI_FLAG_HIDE_NAVIGATION 一起使用,效果使得导航栏出现的时候不会挤压activity高度,导航栏会覆盖在activity之上。 SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION.gif SYSTEM_UI_FLAG_LAYOUT_STABLE(4.1+):使用以上四个属性,可以达到activity占据屏幕所有空间,同时状态栏和导航栏可以悬浮在activity之上的效果。但是此时activity的内容也会(比如顶部和底部各有一个TextView)状态栏和导航栏之下,当状态栏和导航栏出现的时候,看起来会这样: 显然,文字被遮盖了我们是不能接受的,此时我们需要另外一个属性,android:fitsSystemWindows=“true”,这个属性表示系统UI(状态栏、导航栏)可见的时候,会给我们的布局加上padding(paddingTop、paddingBottom)属性,这样内容就不会被盖住了。我们在activity的根布局加上这个属性,效果如下 我们发现,当状态栏和导航栏出现的时候,内容会被挤压一下,这个体验也不是很理想,那么怎么解决这个问题呢? 其实,我们的内容本就不该占据状态栏和导航栏的
您可能关注的文档
- 【2017年整理】内科学考研资料3B1.doc
- 【2017年整理】内科学试题(大院下学期).doc
- 【2017年整理】内科学试题库(二).doc
- 【2017年整理】内科学造血系统疾病讲稿.doc
- 【2017年整理】内科学高血压试题.doc
- 【2017年整理】内科护理+外科护理.doc
- 【2017年整理】内科护理学内分泌与代谢疾病.docx
- 【2017年整理】内科护理学期末补考试卷.doc
- 【2017年整理】内科护理学练习册及答案.doc
- 【2017年整理】内科易混疾病鉴别表.doc
- 五年级数学上册5简易方程2解简易方程第8课时实际问题与方程3教学设计新人教版.doc
- 2024_2025学年新教材高中生物第2章细胞的结构和生命活动第3节第1课时细胞质膜具有选择透过性教案苏教版必修1.doc
- 江苏专用2025版高考地理一轮复习第十二章人类与地理环境的协调发展1人类与地理环境的协调练习含解析新人教版.doc
- 2024_2025学年高中化学第一章物质结构元素周期律第三节化学键练习含解析新人教版必修2.docx
- 2024_2025学年高中政治专题二君主立宪制和民主共和制:以英国和法国为例综合训练含解析新人教版选修3.docx
- 2024_2025学年高中生物课时分层作业18捕获光能的色素和结构含解析新人教版必修1.doc
- 2024_2025学年高中政治专题一古典政治经济学巨匠的理论遗产第3框李嘉图的理论贡献学案新人教版选修2.doc
- 2024_2025学年新教材高中生物第6章细胞的生命历程3细胞的衰老和死亡学案2新人教版必修1.doc
- 2024_2025学年新教材高中生物第6章生物的进化1生物有共同祖先的证据学案新人教版必修2.doc
- 司机保证书15篇 .pdf
文档评论(0)