convertView = mInflater.inflate(R.layout.item_express, parent,false);
问题解决:以下是参考文档
在使用LayoutInflater 加载布局时,经常会碰到这样的情况,明明在布局里设置了布局的大小,为什么就是不起作用,但是同样的布局 在setContentView() 中就可以起作用呢!在查看底层LayoutInflater 中的inflate 方法中终于找到了答案!
首先 我们来看 inflate(int resource, ViewGroup root, boolean attachToRoot) 方法中其他两个参数的含义:
1. 如果root为null,attachToRoot将失去作用,设置任何值都没有意义。
2. 如果root不为null,attachToRoot设为true,则会给加载的布局文件的指定一个父布局,即root。
3. 如果root不为null,attachToRoot设为false,则会将布局文件最外层的所有layout属性进行设置,当该view被添加到父view当中时,这些layout属性会自动生效。
4. 在不设置attachToRoot参数的情况下,如果root不为null,attachToRoot参数默认为true。
而我们在调用 inflate(int resource, ViewGroup root) 方法时,起始就是在调用以上的方法
这样我们的布局文件属性就可以起作用了,不管是设置到dialog,还是popuwindow 都可以呈现了!
第二:为什么同样的在setContentView 中就是起作用的,其实在setContentView 中已经默认添加了一个父布局FrameLayout,所以它可以很好的呈现效果