LayoutInflater中inflate方法参数说明

public View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot)  

resource 加载的资源
viewgroup 加载的资源要依附的父布局
attachToRoot 资源是否要依附在父布局

root!= null, attachToRoot=false,
表示不将第一个参数所指定的View添加到root中,那么这个时候有的小伙伴可能就有疑问了,既然不添加到root中,那我还写这么多干嘛?我第二个参数直接给null不就可以了?其实不然,这里涉及到另外一个问题:我们在开发的过程中给控件所指定的layout_width和layout_height到底是什么意思?该属性的表示一个控件在容器中的大小,就是说这个控件必须在容器中,这个属性才有意义,否则无意义。这就意味着如果我直接将linearlayout加载进来而不给它指定一个父布局,则inflate布局的根节点的layout_width和layout_height属性将会失效(因为这个时候linearlayout将不处于任何容器中,那么它的根节点的宽高自然会失效)。如果我想让linearlayout的根节点有效,又不想让其处于某一个容器中,那我就可以设置root不为null,而attachToRoot为false。这样,指定root的目的也就很明确了,即root会协助linearlayout的根节点生成布局参数,只有这一个作用。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,645评论 25 708
  • 大家对LayoutInflater一定不陌生,它主要用于加载布局,在Fragment的onCreateView方法...
    凡诺依曼阅读 15,582评论 4 26
  • 这几年,我玩起了微信。我有好几个群。同学群有三个: 小学群、中学群和大学群,家人群有两个:大家庭群和小家庭群,朋友...
    杨琴金山阅读 563评论 4 11
  • 一张画没有灵魂,没有思想,画的再好也只是一张画而已,而当画中有了灵魂,它就不再是一张简简单单的画,它能够向人们传递...
    沐雨muyu阅读 197评论 0 1
  • 1.为了爱情 桃花略施粉黛, 少女款款而来。 青山绿水明媚, 桃花源头徘徊。 2.旅游 桃花源头桃花红, 蓝天白云...
    金赛月阅读 544评论 2 12