DecorView 包含Status Bar么?
要解决这个疑问,花个一分钟看完下面这段文字就可以了
- 我们在Activity中通常采用setContentView(R.layout.custom_layout)的方式来定义布局,那这个布局custom_layout在整个View体系中处于什么位置?
- 懂Android的应该都清楚或者听说过:页面都是依附在窗口之上的,而DecorView即是窗口最顶层的视图
- Android frameworks中,与窗口视图处理相关的类,主要是Window及其实现类PhoneWindow
public class PhoneWindow extends Window implements MenuBuilder.Callback {
//...
//窗口顶层View
private DecorView mDecor;
//所有自定义View的根View, id="@android:id/content"
private ViewGroup mContentParent;
}
- DecorView其实是PhoneWindow中的一个内部类,本质上也是一个View,其只是扩展了FrameLayout的实现
private final class DecorView extends FrameLayout implements RootViewSurfaceTaker {
//...
}
- 那么讲了上面这些,到底我们设置的custom_layout在View体系中处于哪里?我这里贴一张图
- 我们custom_layout就在红色矩形框中,大伙儿可以用最新Android Studio中Layout inspector这个工具去验证一下
- 有点怀疑的话,还可以通过参考链接2中代码去调试一下
参考链接: