码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-12-12 23:38:17      阅读:467      评论:0      收藏:0      [点我收藏+]

标签:gridview   android   点击不响应   显示不正常   adapter   

最近做项目的时候遇到了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;
		final Light light = beans.get(position);
		if (convertView == null) {
			holder = new ViewHolder();
			convertView = inflater.inflate(R.layout.lo_light_item, null);
			holder.tvName = (TextView) convertView
					.findViewById(R.id.tv_light_item);
			holder.image = (ImageView) convertView
					.findViewById(R.id.iv_light_item);
			holder.ly = (LinearLayout) convertView
					.findViewById(R.id.ly_light_item);

			
			convertView.setTag(holder);

		} else {
			holder = (ViewHolder) convertView.getTag();
		}
		<pre name="code" class="java">// 设置单个item宽高
			holder.ly
					.setLayoutParams(new GridView.LayoutParams(
							WindowManager.LayoutParams.FILL_PARENT, gv
									.getHeight() / 4));
return convertView;}





具体症状

1、第一个Item的View显示不全,总是显示一半,其他的Item没有问题,如论怎么设置都没用

2、第一个Item里面设置的点击事件不管用,但是轻轻的滚动一下点击事件立马就生效了。 

解决办法:

<pre name="code" class="java">@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		final ViewHolder holder;
		final Light light = beans.get(position);
		if (convertView == null) {
			holder = new ViewHolder();
			convertView = inflater.inflate(R.layout.lo_light_item, null);
			holder.tvName = (TextView) convertView
					.findViewById(R.id.tv_light_item);
			holder.image = (ImageView) convertView
					.findViewById(R.id.iv_light_item);
			holder.ly = (LinearLayout) convertView
					.findViewById(R.id.ly_light_item);

			// 设置单个item宽高
			holder.ly
					.setLayoutParams(new GridView.LayoutParams(
							WindowManager.LayoutParams.FILL_PARENT, gv
									.getHeight() / 4));
			convertView.setTag(holder);

		} else {
			holder = (ViewHolder) convertView.getTag();
		}
		
		return convertView;
	}






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

标签:gridview   android   点击不响应   显示不正常   adapter   

原文地址:http://blog.csdn.net/qq544529563/article/details/41901827

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