动态加载xml布局设置不起作用

  最近在研究android的开发,很有意思,中间也遇到很多问题;最近就遇到一个需求,需要在视图中动态的加载

一个xml布局,实现代码很简单,使用inflate方法即可,但加载后发现xml布局里的设置都没生效,完全不是我们希

望的效果,主要是layout_width和layout_height,明明设置的是match_parent(占满),可显示效果确很像

wrap_content(根据内容计算)的样子,很是郁闷了好久,后来通过百度找到了问题所在(百度无所不能啊,呵呵)

,是inflate方法的参数传递问题。

 

  错误的方法:

  LayoutInflater.from(this.getContext()).inflate(R.layout.widget_pull_down_refresh_header, null, true);

 

  正确的方法:

  LayoutInflater.from(this.getContext()).inflate(R.layout.widget_pull_down_refresh_header, this, false);

 

  大家看到了,关键的就是第2个参数的传递,看了解释说第2个参数用来指定xml布局的父容器,如果为null的话,说明

没有父容器,自己就是顶层元素,因此match_parent的计算就没有参照物,只能根据内容来计算;如果传递一个指定view

的话,就会用指定view的大小作为参照物来计算,也就能实现我们希望的效果。

 

  边学边记,很多地方理解的不到位,如有错误,还望指正!

posted @   bcbr_wang  阅读(358)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示