Android/Etc.
ListView 스크롤 시 아이템 위치가 바뀌는 문제
berabue
2014. 1. 20. 11:56
|
커스텀 리스트뷰를 만들어 적용 후 데이터를 넣고 스크롤을 했더니 아이템 위치가 변경되는 현상이 발견.
생성한 Adapter의 getView에 홀더를 추가하여 데이터 변형을 방지 하였다.
@Override public View getView(int position, View convertView, ViewGroup parent) { final int pos = position; CustomViewHolder holder; if ( convertView == null ) { .. 생략 final TextView textview = (TextView)convertView.findViewById(R.id.custom_word_text); textview.setText( m_List.get(pos).getWord() ); ImageButton btn = (ImageButton) convertView.findViewById(R.id.custom_word_listen); holder = new CustomViewHolder(); holder.m_TextView = textview; holder.m_ImgBtn = btn; convertView.setTag(holder); } else { holder = (CustomViewHolder) convertView.getTag(); } if ( m_List.get(pos).isVisibleWord() ) { holder.m_TextView.setText(m_List.get(pos).getWord()); } else holder.m_TextView.setText(m_List.get(pos).getMeaning()); return convertView; } public class CustomViewHolder { public TextView m_TextView; public ImageButton m_ImgBtn; }
|