码迷,mamicode.com
首页 > 移动开发 > 详细

Android开发—解决自定义GridView高度第一个item高度异常问题

时间:2015-09-15 16:42:02      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:gridview自定义item高度;gridview;item高度;第一个item高度异常

问题描述:

在写之前,先把问题的图贴出来,问题如下图,GridView的第一个item的自定义高度显示不正常(再次加载之后又正常),不是预设的高度:

技术分享

 

解决方法:

首先需要申明,这个GridView 的适配器用的是BaseAdapter,在定义适配器的getView方法中,主要注意代码中/***********/标记的地方,下面贴出我的getView方法:

public View getView(int position, View convertView, ViewGroup parent) {
   
   GirdHolder holder;
   
   if(convertView == null){
    holder = new GirdHolder();
    convertView = LayoutInflater.from(getApplication()).inflate(R.layout.gridview_item, null);
    //set item‘s height  
    GridView.LayoutParams param = new GridView.LayoutParams(
                  android.view.ViewGroup.LayoutParams.MATCH_PARENT,(gvList.getHeight()-(1+level)*16)/level);
    convertView.setLayoutParams(param);    
    holder.imgView = (ImageView) convertView.findViewById(R.id.image);
    convertView.setTag(holder);
   }else{
    holder = (GirdHolder) convertView.getTag();
    //fix the problem of first item‘s height is not normal
    /******************一定要把设置高度的代码再写在这个位置******************************/
    convertView.setLayoutParams(new GridView.LayoutParams(
                  android.view.ViewGroup.LayoutParams.MATCH_PARENT,(gvList.getHeight()-(1+level)*16)/level)); 
   /************************************************/  
   }
   if(status[position] == 0){
    holder.imgView.setImageResource(R.drawable.smile_yellow);
   }else{
    holder.imgView.setImageResource(R.drawable.smile_bule);
   }
   return convertView;
  }

 

再贴上解决后的效果图:

技术分享

本文出自 “Alan_Y (Upspringing)” 博客,请务必保留此出处http://alany.blog.51cto.com/6125308/1694937

Android开发—解决自定义GridView高度第一个item高度异常问题

标签:gridview自定义item高度;gridview;item高度;第一个item高度异常

原文地址:http://alany.blog.51cto.com/6125308/1694937

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!