错误:

The specified child already has a parent. You must call removeView()。

解答:
这个错误非常直白,就是你viewGroup.addView(childView); 中childView已经有父View了。错误原因非常多,我主要讲下 mLayoutInflater.inflate(id, rootView, false);造成的这个错误。(该方法有两种。一种是2个參数,一种是3个參数)。
2个參数:
第一个參数:layout的XML文件id。
第二个參数:将XML文件里的根view,作为子View加入到的那个父View。也就是父View布局
  a:假设rootView非空,方法返回值是rootView(rootView已加入xml代表的子View)。
b:假设rootView为空,方法直接返回子View(xml代表的子View)。那么XML文件里的LayoutParams就无效了。(由于LayoutParams是给该XML代表的View的父View使用。

在父View的onMeasure()中依据LayoutParams是MATCH_PARENT还是WRAP_CONTENT,来測量子View的大小。假设没有父View就不是必需了

故用mLayoutInflater.inflate(id, rootView)。返回的实际上是rootView,而rootView肯定已经有父布局了(DecorateView,系统生成的)。所以 rootView.addView(mLayoutInflater.inflate(id, rootView)).等价于rootView.addView(rootView).所以错了。
3个參数:
问题来了。如何修复b情况。既保留XML文件里的LayoutParams属性,又不想有方法return父View。
两步 rootView != null (是那个对象随便),第三个參数 == false;mLayoutInflater.inflate(id, rootView, false);这样就能够不attach root view。又保留LayoutParams。

Android layoutInflate.inflate 方法具体解释,removeView()错误解决相关推荐

  1. Android之Inflate()方法用途+setContentView和inflate区别

    引用:http://blog.chinaunix.net/uid-27024249-id-3304935.html Android之Inflate()方法用途 Inflate()作用就是将xml定义的 ...

  2. Android NDK: WARNING: Ignoring unknown import directory:错误解决方法

     Android NDK: WARNING: Ignoring unknown import directory:错误解决方法 添加NDK模块路径(参考,具体视情况): NDK_MODULE_PATH ...

  3. android LayoutInflate.inflate源码分析及使用区分

    之前看了两位android大神关于LayoutInflate.inflate详解,我综合一下两篇文章做了自己的总结.如果觉得我总结的不好或者想看原例请看下面: 郭霖:http://blog.csdn. ...

  4. Android之Inflate()方法用途

    flate()作用就是将xml定义的一个布局找出来,但仅仅是找出来而且隐藏的,没有找到的同时并显示功能.最近做的一个项目就是这一点让我迷茫了好几天. Android上还有一个与Inflate()类似功 ...

  5. Inflate()---Android之Inflate()方法用途

    Inflate()作用就是将xml定义的一个布局找出来,但仅仅是找出来而且隐藏的,没有找到的同时并显示功能.最近做的一个项目就是这一点让我迷茫了好几天. android上还有一个与Inflate()类 ...

  6. Android中inflate方法的用法

    Inflate()作用就是将xml定义的一个布局找出来,但仅仅是找出来而且隐藏的,没有找到的同时并显示功能.最近做的一个项目就是这一点让我迷茫了好几天. android上还有一个与Inflate()类 ...

  7. Android之 inflate() 方法总结

    文章目录 一.引言 二.源码分析 2.1 源码跟踪 2.2 结论 一.引言 inflater.inflate(R.layout.layout_inflate_test,null); inflater. ...

  8. android 模拟器read-only file system,WAC启动Android模拟器 transfer error: Read-only file system错误解决方法...

    这两天在用WAC SDK开发Widget时,在启动Android模拟器时Eclipse的Consle出现如下错误: [2011-11-27 22:08:49 - ddms]transfer error ...

  9. Android源代码下载方法具体解释

    作者:张星 相信非常多下载过内核的人都对这个非常熟悉 git clone git://android.git.kernel.org/kernel/common.git kernel 可是这是在曾经,如 ...

  10. android播放器1004,Android音频开发MediaPlayer(-38,0)(-1004)错误解决

    最近在开发音视频,我用的都是mediaplayer,有时会出现error(-38, 0),MediaPlayer: stop called in state 0 或者是其它错误,应该是在还未就绪的情况 ...

最新文章

  1. 当一回标题党“数理系优秀校友访谈”
  2. 引进博士:118万安家房补+18万经费;硕士:42万安家房补+10万经费
  3. 一次 HashSet 所引起的并发问题
  4. nginx与mysql传输过程_某互联网企业技术发展史(四)配置nginx和mysql兼容Yii框架,上传网站并调试成功...
  5. 空间计量模型_Stata空间面板数据模型专题直播丨Stata空间计量3月远程直播
  6. android问题总结报告,Android开发中常见的问题总结
  7. 光纤收发器的7大挑选技巧
  8. 将PowerShell连接到SQL Server
  9. [SVN] 分支同步、合入主干操作分享
  10. Windows 7集成IE11(离线安装包、补丁)
  11. 微信网页开发之授权登录(java实现)
  12. matlab 对直方图均衡化,基于直方图均衡化的图像增强技术分析与Matlab实现_直方图均衡化matlab...
  13. VOLTE呼叫流程介绍
  14. 阿里 70 后程序员的 24 个“避坑”法则
  15. UE4-PixelStreaming(虚幻引擎4-像素流技术)笔记
  16. 借贷记账法--借贷记账法 (Debit and Credit)
  17. python两点之间最短距离_最短路径(图中两点间最短路径)
  18. 苹果手机服务器找不到,电脑找不到苹果手机热点
  19. OpenWrt一些小问题的解决方法
  20. zlog日志系统开发中遇到的问题(2)

热门文章

  1. 有Excel、Tableau、PowerBI都能做数据分析,为什么还要用Python
  2. 关于Javascript, php的web公开课笔记
  3. 23种设计模式及其应用场景
  4. 【转】请求处理机制其二:Django中间件的解析
  5. 20150109--面向对象+对象传值-01
  6. 获取点击按钮的元素_怎么按顺序自动点击网页所有链接
  7. 自定义音乐播放器的歌词显示view
  8. Linux安装Nginx1.7.4、php5.5.15和配置
  9. 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink
  10. 客户端用java api 远程操作HDFS以及远程提交MR任务(源码和异常处理)