ListViewでカスタムAdapterで発生したコントロールに対してエラー現象の解決策を表示します!

1891 ワード

カスタムAdapterでは、ViewHolderのような書き方を使うのが圧倒的に多くの人の選択であるはずですが、やはりListViewの平滑感のために考えられます.しかし、困ったことに、このような書き方ではlistViewがスライド中になり、コントロール表示が乱れてしまうことがあります.
私の解決策は、viewholderのコントロールステータスをデフォルト値に戻す方法をelseに追加することです.
 1 final ViewHolder viewHolder;

 2 if (convertView == null) {

 3 

 4     ...

 5 

 6     convertView.setTag(viewHolder);

 7 } else {

 8     viewHolder = (ViewHolder) convertView.getTag();

 9     resetViewHolder(viewHolder);

10 }

11 

12     ...
1 private void resetViewHolder(ViewHolder vh) {

2         vh.btn_play.setVisibility(View.GONE);

3         vh.iv_avatar.setVisibility(View.GONE);

4     }