Activity 视图

在使用 Hierarchy Viewer 后,我可以看到当前面界面的架构,而从中我发现了,我们自己写的布局其实只是整个布局的一部分,而真正的根布局是一个叫 DecorView 的家伙。

DecorView 继承自 FrameLayout,如果我们想获取到根布局 DecorView,需要调用 Activity 的 getWindow().getDecorView(),当 Activity 创建的时候会默认和一个 Window 关联,而 DecorView 其实就是 Window 的根布局。

以我在 Hierarchy Viewer 中所见到的布局结构,DecorView 下面其实有三部分,分别为:

  • LinearLayout(对应图中1)
  • 状态栏(对应图中2)
  • 底部导航栏(对应图中3)
不好意思画的确实有些难看

如果你处于调试的模式可以获取 DecorView 后,去调用 getChildAt() 去看看这三个的顺序,下标【0】对应的 LinearLayout,下标【1】对应的 底部导航栏,下标【2】对应的状态栏,所以如果你调用了移除 View 的方法,那么最先被移除的是底部的导航栏,然后依次类推。

而我们自己布局就在 LiearLayout 下面,当然标题栏也是,通过 Hierarchy Viewer,也就能完整的看到 Activity 的视图架构,而它的功能还不止于此。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容