组成
上面图片来源:Android界面组成
- mDecor : DecorView 的实例,表示 Window 内部的顶级视图(Activity中通过已添加到 ContentView 的 xml 文件中的任何一个 View 的 getRootView()获得的是DecorView)。
- mContentParent : setContetView 所设置的布局文件就加到这个视图中
- mContentRoot : 是 DecorView 的唯一子视图,内部包含 mContentParent、标题栏。
上面2张图片来源:Android视图架构详解
Android手机的界面组成:
- SystemUI,包括状态栏(即通知栏)、导航栏等。
- 应用程序App区域,即Window,含有DecorView。Window样式、大小、位置等的设置可参考:设置自定义Dialog的样式、大小位置
注:软键盘是Dialog,是系统窗口。activity的属性 windowSoftInputMode 控制着软键盘与activity的main window(主窗口,应该是指 Activity 的应用程序窗口即 PhoneWindow 。 官方文档也无详细解释)之间的影响关系,对于adjustPan 等情况,软键盘弹起时,main Window 的大小不会改变。
软键盘显示隐藏的监听,参考:安卓开发技术:监听软键盘的显示与隐藏
软件盘各种问题,参考:Android软键盘的全面解析,让你不再怕控件被遮盖
各组成部分位置的获取
参考:Android 3种坐标系、View在各坐标系下获取自身坐标的方法、View的滑动和scroll方法
各组成部分宽高的获取
各组成部分的显示和隐藏
-
状态栏的显示、隐藏、覆盖
参考:Android状态栏微技巧,带你真正理解沉浸式模式 -
其它 (可不看)
Android App 隐藏标题栏+状态栏+导航栏
Android开发 之 动态显示和隐藏状态栏和导航栏