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

一,分析一下安卓程序的根布局是什么,我们写的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是不是很惊讶。

 

 

 

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

 

原文地址:https://www.cnblogs.com/zanzg/p/9162397.html

时间: 2024-10-17 10:39:55

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

JFS 文件系统概述及布局分析

JFS 文件系统概述及布局分析 日志文件系统如何缩短系统重启时间 如果发生系统崩溃,JFS 提供了快速文件系统重启.通过使用数据库日志技术,JFS 能在几秒或几分钟之内把文件系统恢复到一致状态,而非日志文件系统却要花上几小时甚至几天才能完成.本白皮书对 JFS 体系结构作了概述,并且描述了可在 developerWorks 网站上找到的 JFS 技术的设计特性.潜在限制以及管理实用程序. 日志文件系统 (JFS) 提供了基于日志的字节级文件系统,该文件系统是为面向事务的高性能系统而开发的.它具有

面向对象--多继承&派生类对象内存布局分析&各基类指针所指向的位置分析

背景 原文链接:ordeder  http://blog.csdn.net/ordeder/article/details/25477363 关于非虚函数的成员函数的调用机制,可以参考: http://blog.csdn.net/yuanyirui/article/details/4594805 成员函数的调用涉及到面向对象语言的反射机制. 虚函数表机制可以查看下面这个blog: http://blog.csdn.net/haoel/article/details/1948051 总结为: 其一

干货!各种常见布局实现+知名网站布局分析1.0版

各种页面常见布局+知名网站实例分析+相关阅读推荐 阅前必看:本文总结了各种常见的布局实现,网上搜的"史上最全布局"好像也没有这么全吧?哈哈!这篇文章就当作一个知识整理吧.当然,文章肯定还有不足的地方,至少目前来看,有两点我是不满足的.第一点,兼容性还没有时间去一一测试,后续再补吧!第二点,缺少每个方法的优缺点分析,由于害怕自己总结的不好或不足,不是很有把握的东西,暂时还是不写了,以免误导他人,以后再看吧!各位读者如果发现问题或者有什么意见,欢迎提出!还有就是这篇文章没提到的其他布局,待

Android布局分析工具HierarchyView

Android SDK中有一个工具HierarchyView.bat,可以分析出模拟器中运行程序的界面设计层次:我们可以用此工具来分析自己的应用布局是否有优化的空间,也可以分析别人优秀的布局进行借鉴和学习. 使用HierarchyView.bat 非常简单: 1.启动模拟器: 2.运行要分析的程序: 3.在SDK目录下(如D:\AndroidHome\android-sdk-windows\tools)打开HierarchyView.bat: 4.选中要分析的程序名,点击Load View Hi

Android布局分析工具HierarchyView的使用方法

本文是从这里看到的:http://www.2cto.com/kf/201404/296960.html 如果我们想宏观的看看自己的布局,Android SDK中有一个工具HierarchyView.bat,可以分析出模拟器中运行程序的界面设计层次:我们可以用此工具来分析自己的应用布局是否有优化的空间,也可以分析别人优秀的布局进行借鉴和学习. 1.在存放SDK的目录下找到这个文件 2.选择工程后,点击查看 3.得到设计层次 Android布局分析工具HierarchyView的使用方法

AutoLayout代码布局使用大全—一种全新的布局思想

相信ios8出来之后,不少的ios程序员为了屏幕的适配而烦恼.相信不少的人都知道有AutoLayout 这么个玩意可以做屏幕适配,事实上,AutoLayout不仅仅只是一个为了多屏幕适配的工具, 它真正的意义所在是给了程序员一种全新的布局思想. 本文主要依据真实项目实例从三个方向全方位讲解AutoLayout的使用大全. 一.AutoLayout布局原理和语法 二.约束冲突和AutoLayout动画处理 三.AutoLayout布局思想,约束链的控制. 本文讲解的内容和代码主要依赖于一个名为UI

布局的几种方式(静态布局、自适应布局、流式布局、响应式布局、弹性布局)

一.静态布局(static layout) 即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位. 1.布局特点 不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示.常规的pc的网站都是静态(定宽度)布局的,也就是设置了min-width,这样的话,如果小于这个宽度就会出现滚动条,如果大于这个宽度则内容居中外加背景,这种设计常见于pc端. 2.设计方法 PC:居中布局,所有样式使用绝对宽度/高度(px),设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查

安卓错误日志分析

安卓错误日志分析 1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等.对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了.数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实

响应式布局实现的几种方法 — 弹性布局

响应式布局实现的几种方法 - 弹性布局 响应式布局的实现是前端工程中一个非常大的跨越,它非常灵活的可塑造性使得同一个网站能在不同的终端设备上展现出不同的活力.就今天这个机会,我想与大家分享并探讨一些常用来实现响应式布局方法中的弹性布局. 弹性布局是一种十分方便的,只需要依赖于CSS样式的实现响应式布局的方式,也是K最多用到的一种实现响应式的方法.尤其是现在类似于某宝.某东一类的电商web站或者手机app的页面,利用弹性布局是都可以很轻松的实现的,下面就是本K用弹性布局copy的某动的手机应用的部