美文网首页Android View 基础
Android高手秘笈之View的挂载

Android高手秘笈之View的挂载

作者: 门心叼龙 | 来源:发表于2019-04-07 19:12 被阅读10次

目录

[1.view挂载的流程?]
[2. LayoutInflater的用法?]
[3. 我们在调用setContentView方法的时候,加载的布局文件并没有设置其TitleBar为什么也显示了?]


1.view挂载的流程?

  • 1.1 setContentView 调用开始
  • 1.2 调用LayoutInflater的inflate方法加载布局文件
  • 1.3 通过pull解析xml布局文件
  • 1.4 通过反射技术实例化控件
  • 1.5 将view添加RootView中
  • ViewRootImpl.java --> performTraversals()--> measureHierarchy() --> measure();

2. LayoutInflater的用法?

LayoutInflater layoutInflater = LayoutInflater.from(context);  
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
layoutInflater.inflate(resourceId, root);  
  • 2.1 如果root为null,attachToRoot将失去作用,设置任何值都没有意义。
  • 2.2 如果root不为null,attachToRoot设为true,则会给加载的布局文件的指定一个父布局,即root。
  • 2.3 如果root不为null,attachToRoot设为false,则会将布局文件最外层的所有layout属性进行设置,当该view被添加到父view当中时,这些layout属性会自动生效。
  • 2.4 在不设置attachToRoot参数的情况下,如果root不为null,attachToRoot参数默认为true。

3. 我们在调用setContentView方法的时候,加载的布局文件并没有设置其TitleBar为什么也显示了?

TitleBar是系统帮我们自动创建的,我们添加的View其实是添加到了TitleBar下的FrameLayot里面

image image.gif

相关文章

网友评论

    本文标题:Android高手秘笈之View的挂载

    本文链接:https://www.haomeiwen.com/subject/rsxeiqtx.html