----参考,转载,借用来源:http://blog.csdn.net/guolin_blog/article/details/12921889

Activity类中onCreate方法中,setContentView()方法,之所以是setContentView,是因为系统会自动在我们的Activity的布局文件的最外层包一层FrameLayout,所以方法才是setContentView,而不是setView,具体原理解析可以用下面这张图来表示:

而我们经常在xml布局文件中设置的layout_width,layout_height 其实相对父布局而言的,所以我们最外层的layout_width以及layout_height属性之所以有效果,是因为系统自动在最外面套了一层FrameLayout。

所以在我们自定义一个view,并添加到当前布局的时候需要自己手动的传入一个LayoutParameter,才能设置大小,左右边距等等属性。。----待验证

2. LayoutInflater的使用方法:

  a. LayoutInflater inflater = LayoutInflater.from(context);

  b. LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

a方法是b方法的精简版

3.inflate方法的重构

  inflater(resouceId,root) : resourceId是指要加载的布局的资源文件Id,root指的是给该布局外层再嵌套一个父布局,如果不需要就直接传入null。这样就成功创建了一个布局的实例,之后再将它动态添加到父布局中就可以了。

  inflater(resouceId,root,attachToRoot): 前两个参数和上面一样:

    a. 如果root为null,则attachToRoot失去作用,设置成任何值都没有一样

    b. 如果root不为null,attachToRoot为true,则为布局添加一个父布局,即root

    c. 如果root不为null,attachToRoot为false,则会将该布局的layout_width及layout_height属性设置成最外层的布局的两个属性一致。即如果最外层是match_parent,那么该布局也是match_parent

    d. 不设置attachToRoot,如果root不为null,则attachToRoot默认为true;

    

LayoutInflater学习总结的更多相关文章

  1. Android—LayoutInflater学习笔记

    LayoutInflater的的主要用处:使用LayoutInflater来载入界面,类似于findViewById()在Activity中加载Widget组件一样.区别在于与LayoutInflat ...

  2. Android LayoutInflater学习

    在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById().不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例 ...

  3. Android学习之Layoutinflater的用法

    •她的第一次 话说,那是一个风雪交加的夜晚,看着她独自一个人走在漆黑的小道上,我抓紧跟了过去: 那晚,我们...... 记得第一次接触这个 Layoutinflater 应该是在学习 ListView ...

  4. Android(java)学习笔记114:LayoutInflater和findViewById

    1. 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById(). 不同点是LayoutInflater是用来找res/layout/下的xml布局文件, ...

  5. android学习—— LayoutInflater的使用

    在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于findViewById(),不同点是LayoutInflater是 用来找layout下xml布局文件,并且实例化!而fi ...

  6. Android学习笔记之View(一):LayoutInflater

    使用LayoutInflater加载布局的两种方式: 第一种: LayoutInflater inflater=LayoutInflater.from(context); inflater.infla ...

  7. [Android学习笔记]LayoutInflater的使用

    LayoutInflater用于动态载入布局,然后获取到布局中定义完成的控件引用 常在动态加载布局,和Adapter中用到 使用步骤:1.通过LayoutInflater加载xml布局文件2.从载入的 ...

  8. [Android FrameWork 6.0源码学习] LayoutInflater 类分析

    LayoutInflater是用来解析XML布局文件,然后生成对象的ViewTree的工具类.是这个工具类的存在,才能让我们写起Layout来那么省劲. 我们接下来进去刨析,看看里边的奥秘 //调用i ...

  9. Android(java)学习笔记55:LayoutInflater 和 findViewById

    1. 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById(). 不同点是LayoutInflater是用来找res/layout/下的xml布局文件, ...

随机推荐

  1. linux-shell——02

    Linux命令的通用命令格式 :命令字 [选项] [参数] 选项: 作用:用于调节命令的具体功能 "-"引导短格式选项(单个字符) EX:“-l” "--"引导 ...

  2. 神经网络的训练和测试 python

    承接上一节,神经网络需要训练,那么训练集来自哪?测试的数据又来自哪? <python神经网络编程>一书给出了训练集,识别图片中的数字.测试集的链接如下: https://raw.githu ...

  3. C# 输出结果有System.Byte[]

    byte[]类型直接输出或者调用ToString函数都会出现这个结果. 需要执行: byte[] a=new byte[10]; string text = "";for (int ...

  4. Dialog BLE 学习之 修改分散加载文件 (2)

    最近搞Dialog的BLE SDK,发现空间不够了,询问原厂,得知可以通过调整分散加载文件而增加空间,一方面是有42KB+8KB的硬件基础,另一方面是原有的程序限制为38KB+8KB.故顺便学习了下把 ...

  5. js调用js的方法

    a.js文件调用b.js文件时,需要在a.js的第一行添加代码 document.write(" <script language=\"javascript\" s ...

  6. java线程安全总结 - 1 (转载)

    原文地址:http://www.jameswxx.com/java/java%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%80%BB%E7%BB%93/ 最近想将ja ...

  7. adb 显示手机分辨率

    adb shell dumpsys window | grep "ShownFrame" | head -n 1 adb shell dwm size 当然,作为一个Android ...

  8. TerminateProcess

    Remarks The TerminateProcess function is used to unconditionally cause a process to exit. The state ...

  9. Android学习记录(5)—在java中学习多线程下载之断点续传②

    在上一节中我们学习了在java中学习多线程下载的基本原理和基本用法,我们并没有讲多线程的断点续传,那么这一节我们就接着上一节来讲断点续传,断点续传的重要性不言而喻,可以不用重复下载,也可以节省时间,实 ...

  10. Lazarus教程 中文版后续给出

    市面上有介绍Delphi的书籍(近来Delphi的书也是越来越少了),但没有一本系统的介绍Lazarus的书,这本书是网上的仅有的一本Lazarus教程,目前全部是英文,不过我已经着手开始翻译,争取尽 ...