fitsSystemWindows
2016-07-01 00:33
183 查看
什么是 fitsSystemWindows
System windows 是指屏幕中系统渲染的部分,包括不可交互的部分(如状态栏)或者可交互的部分(如屏幕底部的虚拟按键导航栏)。一般情况下,应用不需要在这些系统UI的位置进行绘制。而一旦应用有这种需求,便需要保证不被系统UI控件(如状态栏、导航栏)盖住应用的交互控件(例如应用中的一个按钮)。这就是
fitsSystemWindows所做的事情,它为应用的控件设置额外的 padding,以确保其位于系统控件的范围之外。
BEFORE (API LEVEL <= 19)
fitSystemWindows() 从最外层的 View 中开始被调用,然后一旦某个 View 消耗掉这个事件,其子 View 不会再收到 fitSystemWindows 回调。AFTER (API LEVEL >= 20)
fitSystemWindows()被废弃,取而代之,此时被重写的方法应该是
onApplyWindowInsets(),在你重写的方法中,你可以消耗掉任意大小的 insets,然后把剩下的 insets 用
dispatchApplyWindowInsets()方法传递给下一层。
关于此特性的应用
Android Design Library 中,CoordinatorLayout
CollapsingToolbarLayout等 ViewGroup 均使用了此特性。当你使用 Design Library 出现应用界面被系统 UI 遮住的情况时,很可能就是没有正确地指定
fitSystemWindows。
REF
[1] Why would I want to fitsSystemWindows? — Google Developers — Medium[2] http://stackoverflow.com/questions/31190612/fitssystemwindows-effect-gone-for-fragments-added-via-fragmenttransaction/34345286#34345286
相关文章推荐
- 工厂模式小结
- 第五天:收集需求
- 漫谈C++:良好的编程习惯与编程要点【2】
- 第五天:收集需求
- 习题 6-14 UVA - 12118 Inspector's Dilemma 检察员的难题 (DFS 构造欧拉通路)
- 第四天:规划范围管理
- 第四天:规划范围管理
- 毕业这一年
- Python基础—面向对象(进阶篇)
- 第三天:制定项目计划
- 第三天:制定项目计划
- 115-Wildcard Matching
- 第二天:识别干系人
- Java编程题目-1:约瑟夫环问题
- 第二天:识别干系人
- bzoj4571【SCOI2016】美味
- 基于android的远程视频监控系统
- redis+mysql架构搭建
- 6月-月总结
- SICP 习题2.42 八皇后问题