`
cb269267
  • 浏览: 25359 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

关于LayoutInflater.inflate()

阅读更多

不少人都会对这个函数的第三个参数不太理解,下面记录一下解释

 

其实第三个参数boolean attachToRoot的意思是,是否把选取的视图添加到root中,在单纯的调用

例如把某个viewgroup的内部结构用某个layout.xml文件指定的。

 ViewGroup v = (ViewGroupfindViewById(R.id.ffff);
 View vv = LayoutInflater.from(this).inflate(R.layout.ffffvfalse);
 v.addView(vv);
这个时候若是把第三个参数设置成false,那么在你的viewgroup中就得不到任何东西,因为没自动添加进去。
设置成true则是自动把xml文件中的构造添加到root中。
 
但是使用LayoutInflater.inflate()的地方不仅仅是这个,在ExpandableListAdapter中的getGroup或者getChildView的函数重写时就要用一个layout.xml来对应一个item项。
这个时候如果converView = inflater.inflate(R.layout.xxx, parent, true);那么你获得的就是一个exception,为啥呢,我估摸着是在父类getChildView、getGroup这些函数中已经进行了parent.add(converView),因此若设置成true,则重复了这个操作,因此抛出异常。
 
converView = inflater.inflate(R.layout.xxx, parent, false);//执行正确
 
不知道这个解释是否正确,求大神指点。
分享到:
评论

相关推荐

    LayoutInflater.from(context).inflate()方法的调研

    在Android开发中,`LayoutInflater.from(context).inflate()`方法是一个至关重要的组件,用于将XML布局文件转换为视图对象并添加到视图层次结构中。这个方法广泛应用于动态加载和构建用户界面,尤其在处理列表视图、...

    博客《ListView滑动删除实现之一——merge标签与LayoutInflater.inflate()》对应源码

    博客《ListView滑动删除实现之一——merge标签与LayoutInflater.inflate()》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/45155965

    Android 中LayoutInflater.inflate()方法的介绍

    Android 中LayoutInflater.inflate()方法的介绍 Android 中LayoutInflater.inflate()方法是Android开发中最常用的方法之一,用于将布局文件转换成View对象。该方法是LayoutInflater类中的一个成员方法,主要用于将...

    Android LayoutInflater.inflate()详解及分析

    Android LayoutInflater.inflate()详解 深入理解LayoutInflater.inflate() 由于我们很容易习惯公式化的预置代码,有时我们会忽略很优雅的细节。LayoutInflater以及它在Fragment的onCreateView()中填充View的方式...

    Android LayoutInflater.inflate源码分析

    `LayoutInflater.inflate()` 方法是我们经常使用的一个核心方法,尤其是在创建自定义Adapter或动态加载布局时。接下来我们将深入探讨`LayoutInflater.inflate()` 的源码,以理解其工作原理和不同参数版本之间的差异...

    Android中LayoutInflater.inflater()的正确打开方式

    LayoutInflater在开发中使用频率很高,但是一直没有太知道LayoutInflater.from(context).inflate()的真正用法,今天就看看源码的流程。 首先来看from()的源码: /** * Obtains the LayoutInflater from the ...

    Android getViewById和getLayoutInflater().inflate()的详解及比较

    例如,在创建自定义对话框或Adapter时,先用 `LayoutInflater.inflate()` 加载XML布局,然后通过 `findViewById()` 查找并操作加载后的视图。这种组合使得我们可以在运行时动态地构建和修改用户界面,增强了应用的...

    Android代码-可高度定制样式的安卓日历控件

    return LayoutInflater.from(parent.getContext()).inflate(R.layout.view_calendar_item, parent, false); } // @Override public void setDate(View itemVew, int year, int month, int day, boolean ...

    LayoutInflater inflate 示例demo

    总的来说,这个"LayoutInflater inflate 示例demo"是一个很好的学习资源,它将帮助你深入理解Android中布局动态加载的过程,以及如何根据需要有效地使用`LayoutInflater`。通过实践,你将能够熟练掌握这一关键的...

    LayoutInflater inflate例子

    `inflate()` 方法是`LayoutInflater` 的核心功能,用于将XML布局资源动态地加载到活动中。下面将详细解释`LayoutInflater` 及其`inflate()` 方法的工作原理,以及如何在实际应用中灵活使用它们。 `LayoutInflater` ...

    Android 中LayoutInflater的使用

    2. **使用方法**:通过`LayoutInflater.from(Context)`获取LayoutInflater实例,然后调用`inflate()`方法加载布局。 3. **inflate()方法**:接受两个参数,第一个是XML布局资源ID,第二个是父视图,用于确定布局的...

    android中LayoutInflater的使用.pdf

    View view = LayoutInflater.from(this).inflate(R.layout.ID, null); ``` 2. **通过getSystemService()**: ```java LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);...

    LayoutInflater的使用

    LayoutInflater 的inflate 方法共有四种形式,目的都是把 xml 表述的 layout 转化为 View 对象。其中一个比较常用的是: ```java View inflate(int resource, ViewGroup root) ``` 其中,int resource 是 resource...

    Android LayoutInflater加载布局详解及实例代码

    Android LayoutInflater加载布局详解 对于有一定Android开发经验的同学来说,一定使用过LayoutInflater.inflater()来加载布局文件,但并不一定去深究过它的原理,比如 1.LayoutInflater为什么可以加载layout文件? ...

    andrpod TAB

    LayoutInflater.from(this).inflate(R.layout.tab2, tabHost.getTabContentView(), true); LayoutInflater.from(this).inflate(R.layout.tab3, tabHost.getTabContentView(), true); //添加标签页 tabHost....

    Android开发实现自定义Toast、LayoutInflater使用其他布局示例

    自定义 Toast 主要有两种方法:一种是使用 Toast 的 setView() 方法将自定义的 View 添加到 Toast 中,另一种是使用 LayoutInflater.inflate() 方法将自定义的布局文件 inflate 到 View 中,然后将其添加到 Toast 中...

Global site tag (gtag.js) - Google Analytics