Android高手秘笈之View的挂载

目录

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里面


        

相关推荐
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:马嘣嘣 返回首页
实付 29.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值