我有一个自定义列表适配器,我正在尝试使用其中带有进度条的布局。
我的问题是,当视图第一次膨胀时,我将进度条可见性设置为 false。单击该项目时,我将进度条可见性设置为 true。但是,如果你向下滚动列表,随机项目的进度条就会变得可见(由于视图的回收?)。
有什么简单的方法可以解决这个问题吗?
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = inflater.inflate(R.layout.imagegriditem, null);
holder = new ViewHolder();
holder.heroName = (TextView) convertView.findViewById(R.id.heroName);
holder.heroImage = (ImageView)convertView.findViewById(R.id.heroImage);
holder.progressBar = (ProgressBar) convertView.findViewById(R.id.progressBar);
holder.progressBar.setIndeterminate(false);
holder.progressBar.setVisibility(View.INVISIBLE);
holder.progressBar.setIndeterminate(false);
holder.progressVisible = View.INVISIBLE;
convertView.setTag(holder);
}
else{
holder = (ViewHolder) convertView.getTag();
}
if(holder != null){
holder.heroName.setText(heroes[position]);
holder.heroImage.setImageResource(android.R.drawable.ic_dialog_email);
holder.progressBar.setProgress(10);
}
final int pos = position;
final ViewHolder hold = holder;
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
hold.progressBar.setProgress(hold.progressBar.getProgress() + 10);
hold.progressVisible = View.VISIBLE;
hold.progressBar.setVisibility(View.VISIBLE);
}
});
return convertView;
}
这基本上是概念验证代码..所以它不是很漂亮。但是,只是想把这个想法记下来,这样我才能正确使用它。