关于inf

方法 inflate(int resource, ViewGroup root, boolean attachToRoot) 中,前连个参数都好理解,我比较费解的是第3个参数。

文档中的解释是:Whether the inflated hierarchy should be attached to the root parameter? If false, root is only used to create the correct subclass of LayoutParams for the root view in the XML.
 
举个例子看一下
新建一个工程
 
工程包含两个xml文件
layout/main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
   
    <FrameLayout
        android:id="@+id/ffff"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"></FrameLayout>
 
</LinearLayout>
 
layout/ffff.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
 
    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="CheckBox" />
 
</LinearLayout>
 
接下来看activity中怎么写的
这里分3中情况
first, no attachToRoot params
activity 中的部分代码,注意看红色部分
        setContentView(R.layout.main);
        ViewGroup v =
(ViewGroup) findViewById(R.id.ffff);
        View vv = LayoutInflater.from(this).inflate(R.layout.ffff, v);
 

 
布局结构图

 
Second, params attachToRoot is false
View vv = LayoutInflater.from(this).inflate(R.layout.ffff, v, false);
 

发现没有了ffff.xml 中的内容
通过结构图查看,确实没有了

 
Third,
        ViewGroup v =
(ViewGroup) findViewById(R.id.ffff);
        View vv = LayoutInflater.from(this).inflate(R.layout.ffff, v, false);
        v.addView(vv);
 
运行结果

 
呵呵,又有了。
 
所以这个参数的作用就是,是否把选取的视图加入到root中。false 的意思就是不添加到root中。可能需要我们手动添加。

最新文章

  1. 你好,欢迎来到我的博客,我是博主royalmice
  2. [转]三大WEB服务器对比分析(apache ,lighttpd,nginx)
  3. javascript: 带分组数据的Table表头排序
  4. c++时间处理
  5. fastcgi(一)
  6. linux源代码阅读笔记 高速缓冲区管理
  7. 【转】Android TextView SpannableStringBuilder 图文混排颜色斜体粗体下划线删除线
  8. DDS视图&amp;Button控件
  9. UVa1630,Folding
  10. 删除排序链表中的重复元素的golang实现
  11. Java中Enumeration接口的用法
  12. POJ3041 Asteroids 二分图匹配 匈牙利算法
  13. Net Core 使用外部登陆提供程序登陆的流程,以及身份认证的流程
  14. HTML5 文件API
  15. ckeditor:新增时会得到上次编辑的内容
  16. InvalidateRect,invalidate,updatewindow(转)
  17. BCB 按钮添加背景图
  18. 开源的报表系统easyreport的部署
  19. Java程序设计10——与运行环境交互
  20. loadruner关联web_reg_save_param

热门文章

  1. HDFS 名称节点的启动
  2. 解决pip安装过慢的问题
  3. K8s 学习者绝对不能错过的最全知识图谱(内含 56个知识点链接)
  4. 修改代码150万行!与 Blink 合并后的 Apache Flink 1.9.0 究竟有哪些重大变更?
  5. JavaScript模板引擎实例应用(转)
  6. windows 标准错误重定向
  7. 1.1Jupyter notbook 的使用
  8. 2019.8.14 NOIP模拟测试21 反思总结
  9. day36 04-Hibernate检索方式:多表连接查询
  10. python中操作json