动态加载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 @ 2013-12-27 23:02  bcbr_wang  阅读(349)  评论(0编辑  收藏  举报