Android view层级

一、DecorView为整个Window界面的最顶层View。

二、DecorView只有一个子元素为LinearLayout。代表整个Window界面,包含通知栏,标题栏,内容显示栏三块区域。

三、LinearLayout里有两个FrameLayout子元素。

(20)为标题栏显示界面。只有一个TextView显示应用的名称。也可以自定义标题栏,载入后的自定义标题栏View将加入FrameLayout中。

(21)为内容栏显示界面。就是setContentView()方法载入的布局界面,加入其中。

工具查看:

1.下图为SDK中tools文件夹下hierarchyviewer bat 查看ViewTree的结果:

(此时未替换标题栏)

2.替换标题栏后ViewTree的变化:

绿色区域发生了变化,改变为了载入的title.xml文件的布局。

title.xml内容为:

version="1.0"encoding="utf-8"?>

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/icon2"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/title_tv"

android:textColor="#FFFFFF"

android:textStyle="bold"

android:text="@string/app_name"

/>

通知栏绘制在1号LinearLayout中,还是绘制在DecorView中还有待探究。

-----------------

ApiDemo中app包下CustomTitle中自定义TitleBar代码段

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

setContentView(R.layout.custom_title);

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1);

载入自定义titleBar后如何查找其中元素呢,其实还是findViewById就可以了,因为载入的自定义布局已经在DecorView树中了

而findViewById是怎么回事呢。

activity中findViewById源码

public View findViewById(int id) {

return getWindow().findViewById(id);

}

调用了getWindow().findViewById,getWindow返回的是Window点入查看window中源码

public View findViewById(int id) {

return getDecorView().findViewById(id);

}

所以最终是从DecorView最顶层开始搜索的

感谢:http://blog.csdn.net/sunny2come/article/details/889913

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,663评论 25 708
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,571评论 0 17
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,585评论 2 45
  • 文/鱼语兰心 一夕光阴一夕景, 谁人能解此园情? 两岸杨柳今还绿, 不见那年栽柳人。 2015/8/2,北京颐和园
    鱼语兰心阅读 236评论 0 0
  • 刹那间涌现的是您,与我曾经的点点滴滴 发现我的心里,你是无法取代 在漫长的岁月里,您陪着我成长 一幕一幕展现的是您...
    萋萋月下阅读 279评论 0 0