android getView 一直是position=0的另一种情况

原创
2015/01/29 11:06
阅读数 66

    昨天开发项目遇到Gridview列表显示不出来,数据list有15条,而getView中只打印一条数据position=0,也就是getView只执行了一次。百度了一下,基本都是设置ListView或gridview的高度时使用了wrap_content,要使用match_parent或指定高度。可是我使用的就是match_parent,而且根布局也一样。当我设置一个固定高度,列表就能显示出来了,我就无语了,match怎么不行?因为之前写过很多ListView和Gridview,我尝试加载别的布局文件,列表还是显示不出来。。。

    今天仔细对照之前写的包含列表的代码,发现onCreateView的inflater.inflate使用两个参数的方法(使用fragment显示列表),和之前写的不一致,改成inflater.inflate(R.layout.fragment_module1,container,false),试了一下,显示成功。主要是因为没设置viewgroup,api文档上这样描述:root          Optional view to be the parent of the generated hierarchy (if        attachToRoot is true), or else simply an object that        provides a set of LayoutParams values for root of the returned        hierarchy (if attachToRoot is false.)结合百度到的,引用:参数root需要附加到resource资源文件的跟控件, 由于inflate()会返回一个View对象,如果第三个参数attachToRoot为true,就将这个参数作为根对象返回,否则 仅仅将这个root对象的LayoutParams属性附加到resource对象的根布局对象上,也就是将布局文件resource的布局参数转换为外 层root可以接受的类型,比如root是一个LinearLayout自己要转换的resource里面有 layout_width=”fill_parent”,和layout_height=”fill_parent”参数,但是这些参数没有外部环境,它 们对应的对象都是ViewGroup.LayoutParams对象,root参数让系统将ViewGroup.LayoutParams对象转换为 LinearLayout.LayoutParams对象。

参考:http://www.aichengxu.com/view/13370

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部