GridView表现得很奇怪;重复TextView

时间:2013-06-20 20:41:50

标签: android textview android-gridview

所以我得到一个显示一些标志的GridView。每个GridView单元都包含一个ImageView和一个TextView。开始时仅显示ImageView。当GridView中的位置1和240加载时,TextView应该变为可见。

    @Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder mVHolder;

    if (convertView == null) {
        convertView = LayoutInflater.from(mContext).inflate(R.layout.grid_images, parent, false);
        mVHolder = new ViewHolder();
        mVHolder.mImageView = (ImageView) convertView.findViewById(R.id.gridview_img);
        mVHolder.mTextView = (TextView) convertView.findViewById(R.id.textas);
        mVHolder.mTextView.setVisibility(View.INVISIBLE);
        convertView.setTag(mVHolder);
    } else {
        mVHolder = (ViewHolder) convertView.getTag();
    }
    int img = Flagcontainer.flags.get(position).getFlagThumb();


    Picasso.with(mContext).load(img).into(mVHolder.mImageView);

    if (position == 1 || position == 240) {
        mVHolder.mTextView.setVisibility(View.VISIBLE);
    }


    return convertView;
}

class ViewHolder {
    ImageView mImageView;
    TextView mTextView;
}

问题:

当一直滚动到GridView的底部时,将显示单元格240的TextView。如果向上滚动,则显示除1和240之外的其他单元格的TextView。

我的代码出了什么问题?

观看视频以显示问题

视频: http://www.youtube.com/watch?v=ONLLvS9ISJQ

1 个答案:

答案 0 :(得分:0)

因为el_bhm指出了这个位

if (position == 1 || position == 240) {
    mVHolder.mTextView.setVisibility(View.VISIBLE);
}

需要mVHolder.mTextView.setVisibility(View.GONE);

的其他地方