GridView中第一个item不显示,以及显示方式不正确的调整方式。
来源:互联网 发布:京东泄密 数据 编辑:程序博客网 时间:2024/05/23 15:03
项目中在GridView的使用过程中遇到不少问题,在此记录一下,给自己提个醒:
Gridview第一个item不显示的问题。
在GridView中,我们在getView中可以映射每个item的布局,通过inflate的方式。这里参考一下大神的分析,具体在这里有详细的描述三种不同inflate方法的描述:
http://blog.csdn.net/lmj623565791/article/details/38171465。
在此建议使用第二种构造函数来构建inflate,至于为什么,第一种inflate(layoutId, null )是无法获取到布局文件的,那就无法通过getLayoutParams()和setLayoutParams()方法来进行单个item大小设置的。
有的朋友会问,可以用new GridViewLayoutParams()来操作,我对这个理解还不是很明白,但是我发现new出来的东西会出现莫名其妙的问题,所以个人自己建议是通过get和set方法来操作。
第一个item不显示,主要是我们在getView中通过get和set方法进行了动态的item大小控制,那么在这里我们的控制代码应该怎么放置呢?
@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubLog.i("CustomGridViewAdapter", "getView be called");ViewHold holder;if (convertView == null || convertView.getTag() == null) {convertView = mInflater.inflate(R.layout.image_text_button, parent,false);holder = new ViewHold();IniInflaterView(holder, convertView);convertView.setTag(holder);} else {holder = (ViewHold) convertView.getTag();}<pre name="code" class="html">int mwidth = mPullToRefreshGridView.getWidth() / 7;// Log.e("item宽度", mwidth + "");LayoutParams lp = (LayoutParams) convertView.getLayoutParams();lp.height = mwidth * 14 / 9;lp.width = mwidth;convertView.setLayoutParams(lp);
IniInflaterViewDoSomething(holder, arrayList.getBookInfo().get(position));return convertView;}一般习惯性会把
int mwidth = mPullToRefreshGridView.getWidth() / 7;// Log.e("item宽度", mwidth + "");LayoutParams lp = (LayoutParams) convertView.getLayoutParams();lp.height = mwidth * 14 / 9;lp.width = mwidth;convertView.setLayoutParams(lp);这几行代码放到if里面去操作,但是当构造完成是,已经存在了convertVIew的时候进的是else那就会影响到布局显示了。
参考几位前辈写的bolg:
http://blog.csdn.net/X_i_a_o_H_a_i/article/details/41822505
1 0
- GridView中第一个item不显示,以及显示方式不正确的调整方式。
- GridView设置Item高度,解决第一个item显示不正常以及事件不响应的问题
- GridView动态设置Item的宽高 第一个Item不显示的问题
- GridView动态设置Item的宽高 第一个Item不显示的问题
- 【Android疑难杂症】GridView动态设置Item的宽高导致第一个Item不响应或显示不正常的问题
- 【Android疑难杂症】GridView动态设置Item的宽高导致第一个Item不响应或显示不正常的问题
- GridView item不显示
- GridView 自定义Item大小的时候第一个Item显示不正常的解决办法
- GridView动态设置Item的宽高 第一个Item显示不正常
- ListView的第一个item完整显示
- DataGrid单元格中显示日期不显示时间的方式
- 解决GridView动态设置宽高导致第一个item点击不响应或显示不正常问题
- Android GridView之添加分隔线,动态设置高度,实现高度自适应,并解决第一个item不显示的问题
- 关于gridView第一个item点击不响应的问题
- gridview 第一个item的图片加载不出来
- ScrollView中嵌套GridView,Listview不显示全部item的问题
- ScrollView中嵌套GridView,Listview不显示全部item的问题
- Android中GridView中Item点击背景图片的显示改变
- ios: 使用http进行通信(Transport Security has Blocked a cleartext HTTP)
- 十大前端开发框架
- CentOS 6.5 英文提示修改为中文提示的方法
- 《数据结构与算法分析(c描述)》—— 插入排序&希尔排序
- OC基础-03Foundation中的简单类和数据类型
- GridView中第一个item不显示,以及显示方式不正确的调整方式。
- .gitignore更改后无效
- 【BZOJ2049】[Sdoi2008]Cave 洞穴勘测【Link-Cut Tree】
- Spring AOP与IOC
- linux图形界面基本知识(X、X11、Xfree86、Xorg、GNOME、KDE之间的关系)
- hdu 3068 最长回文 manacher算法
- shell关闭___启动tomcat
- 用一个数组表示两个栈,只要数组有空间,往栈中添加元素就能成功
- Python error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)解决方案