Страницы

Поиск по вопросам

четверг, 21 марта 2019 г.

Ошибка прокрутки при использовании компонента ListView

На активити добавил листВью, при большом количестве элементов, при скроллинге, выделяются все элементы. Хотелось бы убрать этот эффект =)


public class ListAdapter extends ArrayAdapter implements OnClickListener, OnCreateContextMenuListener {
private List tasks;
public ListAdapter(Context context, List tasks) { super(context, R.layout.rowlayout, tasks); this.tasks = tasks;
}
static class ViewHolder { public TextView title, timeField; public Date dateStart; public Date dateFinish; public ImageView icon; }
Task task; ViewHolder holder; long time; ArrayList taskList = new ArrayList();
@Override public View getView(int position, View convertView, ViewGroup parent) { task = tasks.get(position);
View view = convertView;
if (view == null) {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate(R.layout.rowlayout, null);
holder = new ViewHolder(); holder.icon = (ImageView) view.findViewById(R.id.subj_icon); holder.title = (TextView) view.findViewById(R.id.title); holder.timeField = (TextView) view.findViewById(R.id.start_date); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } // view.setTag(holder); view.setTag(R.id.progressBar, task); holder.title.setText(task.getTitle()); holder.timeField.setText(Utility.formatDate(task.getDateStart()) + " - " + Utility.formatDate(task.getDateEnd()));
view.setOnClickListener(this); updateIcon();
return view; }
public void updateIcon() { int i = task.getPriority(); int excellent = task.getComplet(); if (excellent != 100) { switch (i) { case 0: holder.icon.setImageResource(R.drawable.btn_rating_star_off_normal); break; case 1: holder.icon.setImageResource(R.drawable.btn_rating_star_off_pressed); break; case 2: holder.icon.setImageResource(R.drawable.btn_rating_star_off_selected); break; default: break; } } else { switch (i) { case 0: holder.icon.setImageResource(R.drawable.btn_rating_star_on_normal); break; case 1: holder.icon.setImageResource(R.drawable.btn_rating_star_on_pressed); break; case 2: holder.icon.setImageResource(R.drawable.btn_rating_star_on_selected); break; default: break; } } }
public void onClick(View v) { Intent intent = new Intent(getContext(), TaskActivity.class); intent.putExtra(IDKeys.UID, ((Task)v.getTag(R.id.progressBar)).getID()); getContext().startActivity(intent);
} /**************************************************************************************** * * Context Menu * ****************************************************************************************/
public static final int IDM_DELETE = 102; public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.add(Menu.NONE, IDM_DELETE, Menu.NONE, "DELETE"); }
}
UPD.1
на рис.1 (со звездочками) - ListView, (прилагается его код) при попытке его прокрутить пальцем на экрана девайса(или в эмуляторе), получаем -результат, на рис. 2. Т.е. все элементы выделяются, как один


Ответ

Подставил на свой row_layout.xml фон - эффект пропал....

Комментариев нет:

Отправить комментарий