2013-06-20 30 views
0

所以我有一个GridView显示一些标志。每个GridView单元由一个ImageView和一个TextView组成。仅在开始时显示ImageView。当GridView中的位置1和240加载时,TextView应该可见。GridView表现怪异;重复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

回答

0

为el_bhm指出,该位

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

需要一个别的地方mVHolder.mTextView.setVisibility(View.GONE);

+0

它的知名度。在创建或获取ViewHolder之后,需要在每个getView中设置它。在ViewHolder partioaly中再次查找视图会破坏此模式的目的,不是吗? –

+0

@el_bhm是的,我想知道问题 – tyczj

+0

谢谢你们!我不知道我是怎么错过的。 –