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

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

    今天仔细对照以前写的包含列表的代码,发现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对象。api

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

相关文章
相关标签/搜索