GridView动态设置Item的宽高 第一个Item不显示的问题

在viewpaper中添加了一个Gridview,每个viewpaper要正好铺满显示3X2个,由于girdview是纵向可扩展的,所以我需要动态设置Gridview中item的高度,来确认铺满。

遇到的问题:Gridview中第一个item不显示

动态设置Item的高度只需要在adapter的getView方法中 使用parent的宽高进行重新计算就行了

废话不多说,直接上代码

<pre name="code" class="java">@Override
	public View getView(final int position, View convertView, ViewGroup parent) {

		Holder holder = null;
		if (null == convertView) {
			holder = new Holder();
			LayoutInflater mInflater = LayoutInflater.from(mContext);
			convertView = mInflater.inflate(R.layout.f2_gridview_item, parent, false);
			/*根据parent动态设置convertview的大小*/
			convertView.setLayoutParams(new AbsListView.LayoutParams((int) (parent.getWidth() / 3) - 1, (int) (parent.getHeight() / 2)));// 动态设置item的高度
			holder.btn_gv_item = (ImageView) convertView.findViewById(R.id.btn_gv_item);
			convertView.setTag(holder);
		} else {
			holder = (Holder) convertView.getTag();
			/*解决动态设置convertview大小,第一项不显示的BUG*/
			convertView.setLayoutParams(new AbsListView.LayoutParams((int) (parent.getWidth() / 3) - 1, (int) (parent.getHeight() / 2)));// 动态设置item的高度
		}
		// _Holder.btn_gv_item.setText(mLists.get(position));

		return convertView;
	}

有bug的图片

bug解决后的图片

这个bug修改方式和http://www.cnblogs.com/over140/p/3999815.html这篇博客正好相反,写法和他错误的写法一样。请对比试用

时间: 2024-10-27 12:28:29

GridView动态设置Item的宽高 第一个Item不显示的问题的相关文章

动态设置ImageView的宽高以及位置

如何动态设置ImageView的宽高以及位置 package com.pic; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; public class PicTest extends Activity { private final

动态获取手机屏幕宽高及动态设置控件宽高

1.获取手机屏幕宽高: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenWidth = dm.widthPixels; int screenHeight = dm.heightPixels; 22.根据屏幕宽度为控件设置动态设置宽高: imageView.setImageResource(R.drawable.newscar); L

iframe跨域动态设置主窗口宽高

Q:在A项目的a页面嵌入一个iframe,src是B项目的b页面,怎样让a页面的高度跟b页面的高度一样? A:解决跨域方案:增加一个A项目的c页面. 操作步骤: 一,a页面的iframe设置: 获取到当前域名,作为参数设置到src上 1 <iframe id={idname} title=" " scrolling="no" src={`${iframeUrl}?zeus=${locationOrigin}`} > 二,b页面页脚增加以下代码:通过loc

android安卓动态设置控件宽高

LayoutParams layoutParams=imageView.getLayoutParams(); layoutParams.width=100; layoutParams.height=200; imageView.setLayoutParams(layoutParams);

解决GridView动态设置宽高导致第一个item点击不响应或显示不正常问题

最近做项目的时候遇到了2次这个问题,现在分享一下经验 一.问题 问题代码: </pre><p><pre name="code" class="java">@Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub final ViewHolder holder

android动态设置控件的高宽

关键代码: LayoutParams para; para = mTabImg.getLayoutParams(); para.width=one; mTabImg.setLayoutParams(para); mTabImg是你要设置的控件  首先拿到后就可以设置 Display currDisplay = getWindowManager().getDefaultDisplay();// 获取屏幕当前分辨率 int displayWidth = currDisplay.getWidth();

007. 自定义ListBox的item的宽高, 字体居中

/// <summary> /// 自定义ListBox的item的宽高, 字体居中 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void lisB_DrawItem(object sender, DrawItemEventArgs e) { if (e.Index =

【Android疑难杂症】GridView动态设置Item的宽高导致第一个Item不响应或显示不正常的问题

前言 这个问题在之前做一个盒子项目时遇到过,最近又遇到了,使用GridView遇到的非常奇葩的问题,这里记录分享一下. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 一.问题 1.1 先看问题代码: @Override    public View getView(int position, View convertView, ViewGroup parent) {     

请编写&quot;改变颜色&quot;、&quot;改变宽高&quot;、&quot;隐藏内容&quot;、&quot;显示内容&quot;、&quot;取消设置&quot;的函数,点击相应按钮执行相应操作,点击&quot;取消设置&quot;按钮后,提示是否取消设置,如是执行操作,否则不做操作

<!DOCTYPE HTML><html><head><meta http-equiv="txttent-Type" txttent="text/html; charset=utf-8" /><title>javascript</title><style type="text/css">body{font-size:12px;}#txt{ height:400px