標籤:gridview自訂item高度;gridview;item高度;第一個item高度異常
問題描述:
在寫之前,先把問題的圖貼出來,問題如,GridView的第一個item的自訂高度顯示不正常(再次載入之後又正常),不是預設的高度:
650) this.width=650;" style="width:247px;height:377px;" title="QQ圖片20150915140447.png" alt="wKioL1X3t03BUQYQAADXrXTWmYs462.jpg" src="http://s3.51cto.com/wyfs02/M02/73/32/wKioL1X3t03BUQYQAADXrXTWmYs462.jpg" width="345" height="550" />
解決方案:
首先需要申明,這個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; }
再貼上解決後的:
650) this.width=650;" style="width:261px;height:393px;" title="QQ圖片20150915141517.png" alt="wKiom1X3t4aA_lT8AADOAZXtd6c937.jpg" src="http://s3.51cto.com/wyfs02/M00/73/35/wKiom1X3t4aA_lT8AADOAZXtd6c937.jpg" width="302" height="385" />
本文出自 “Alan_Y (Upspringing)” 部落格,請務必保留此出處http://alany.blog.51cto.com/6125308/1694937
Android開發—解決自訂GridView高度第一個item高度異常問題