安卓详细布局分析-从根布局到具体布局

zanzg 2018-06-10 原文

安卓详细布局分析-从根布局到具体布局

安卓详细布局分析-从根布局到具体布局

一,分析一下安卓程序的根布局是什么,我们写的xml文件部署到什么地方,setContentview(layout)是怎么回事。

 

  安卓SDK的tools中提供了一个分析程序层次结构的工具:hierarchyviewer.bat。在这个工具中,你可以看到程序的真正的详细布局。接下来,我们分析一下,用新创建的项目。

 

 

二,打开hierarchyviewer.bat工具,运行一个新创建的项目。

 

 

 

 

  

二,安卓的根布局,或者说根屏幕到底是什么?

 

1.当点击根布局的时候,会在右下角显示一个红色的区域,对应着相应的布局。可以看到当点击phoneWindow&DecorView(DecorView是phoneWindow类中的一个内部类)的时候,右下角显示的是全屏:状态栏(statusbar),导航栏(toolbar),内容栏(content)。能够知道,这个phoneWindow&DecorView就是我们要找的根布局。

 

接下来,我们再看看,它包含着什么东西。看下图,可以看到,当点击actionBarOverLayout时,右下角的红色区域包含了导航栏和内容栏。状态栏不包含在内。

R.layout.activity_main布局就是RelationLayout布局,我在里面放了一个TextView 和 一个Button,在画面中可以清晰的看到。而toolbar包含了一个textView用来显示appName,一个ActionmenuView显示隐藏的menu。这样可以清晰的理解我们的布局到底布置到了那里。

在这里我们就能了解到,我们的activity_main.xml文件,被setContentView方法把xml文件布局到了一个id叫content的布局中了。

 

 

三,我们在MainActivity中在来测试一下。

 

 

用getWindow方法得到的就是phoneWindow类了,getDecorView得到具体的DecorView类。

从DecorView可以赋值给View来看,DecorView是一个可视化组件,是activity窗口的根布局。

用Log打印一下看一下,究竟是不是。可以看到Log框中的tag。而DecorView的超类竟然是FramLayout是不是很惊讶。

 

 

 

 

这一部分知识讲解虽然不多,但是对理解整体布局很关键。加油!

 

    

发表于 2018-06-10 10:26 人生七天 阅读() 评论() 编辑 收藏

 

版权声明:本文为zanzg原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zanzg/p/9162397.html

安卓详细布局分析-从根布局到具体布局的更多相关文章

  1. 收藏 – android

    收藏 – android开发 2018-05-04 16:39:36 介绍:这篇文章是收藏系列的开 […]...

  2. 关于安卓手机通过调用摄像头上传视频文件失败的情况

    在安卓手机上用<input type=”file” id=”file […]...

  3. 00-Unit_Common综述-RecyclerView封装

    自学安卓也有一年的时间了,与代码相伴的日子里,苦乐共存。能坚持到现在确实已见到了“往日所未曾见证的风采”。今2 […]...

  4. 关于eclipse 与OpenCV 配置频繁报错的问题总结Program “C:/SDK/android-ndk-xxx/ndk-build.cmd” is not found in PATH报错的解决!

    2018-01-3116:58:12 Program "C:/SDK/android-ndk-r8/ndk-b […]...

  5. Flutter 即学即用系列博客——09 EventChannel 实现原生与 Flutter 通信(一)

    前言 紧接着上一篇,这一篇我们讲一下原生怎么给 Flutter 发信号,即原生-> Flutter 还是 […]...

  6. Flutter 即学即用系列博客——07 RenderFlex overflowed 引发的思考

    背景 在进行 Flutter UI 开发的时候,控制台报出了下面错误: flutter: ══╡ EXCEPT […]...

  7. 帧动画的创建方式 – xml方式

      废话不多说,先看东西        帧动画的创建方式主要以下2种:   * 用xml创建动画;   * 纯 […]...

  8. Flutter 即学即用系列博客——04 Flutter UI 初窥

    前面三篇可以算是一个小小的里程碑。 主要是介绍了 Flutter 环境的搭建、如何创建 Flutter 项目以 […]...

随机推荐

  1. 带着新人学springboot的应用09(springboot+异步任务)

    带着新人学springboot的应用09(springboot+异步任务)   本来想说说检索的,不过不知道什 […]...

  2. 最新机动车行驶证PS模板素材下载

    最近很多小伙伴问我如何编辑PSD分层文件,其实很简单,今天给大家分享一套自己的作品,不喜勿喷!   简要: 自 […]...

  3. 小波变换通俗讲解(1)

    这是《小波变换和motion信号处理》系列的第一篇,基础普及。第二篇我准备写深入小波的东西,第三篇讲解应用。 […]...

  4. windows 搭建 IBM Hyperledger Fabric(超级账本)开发环境

      一、概述         Hyperledge fabric项目是IBM开源的区块链项目。Github地址 […]...

  5. Vue小说阅读器(仿追书神器)

    一个vue阅读器项目,目前已升级到2.0,阅读器支持横向分页并滑动翻页(没有动画,需要动画的可以自己设置,增加 […]...

  6. Kubernetes/K8s CKA认证全套实训视频教程下载

    k8s CKA 认证 地址: 链接:https://pan.baidu.com/s/1bwEUZTCVzqM3 […]...

  7. MySQL 多表查询

    文章转载的:http://www.cnblogs.com/BeginMan/p/3754322.html   […]...

  8. 《即时消息技术剖析与实战》学习笔记9——IM系统如何支持消息的多终端漫游

    一、什么是多终端漫游 多终端漫游是指:用户在任意一个设备登录后,都能获取到历史的聊天记录。如:QQ 默认漫游 […]...

展开目录

目录导航