Я пользуюсь библиотекой CircularImageView. У меня есть CircularImageView
в моем ViewHolder
, и я хочу изменить его цвет границы по щелчку.Настройка CircularImageView цвет границы программно
Мои onBindViewHolder
:
public void onBindViewHolder(ThumbnailAdapter.ViewHolder holder, int position) {
... //getting the relevant user from dataset and other irrelevant stuff
if(selectedUsers.size() == 0 || selectedUsers.contains(user)) {
holder.thumbnail.setBorderColor(R.color.selected);
} else {
holder.thumbnail.setBorderColor(R.color.not_selected);
}
holder.thumbnail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (selectedUsers.contains(user)) {
selectedUsers.remove(user);
} else {
selectedUsers.add(user);
}
notifyDataSetChanged();
}
});
}
Странная вещь, что первые окрасочные работы (граница цвет действительно не один предопределены в XML), но дальнейшее изменение не влияет на вид (хотя событие вызывается и значение изменяется). Я попытался изменить также применимый для устранения проблемы с RecyclerView
, и он работает так, как ожидалось.
Я делаю что-то неправильно? Может быть, в библиотеке есть ошибка (если так, я не мог ее найти)? Любая помощь будет оценена!
EDIT: Более адаптер код:
public ThumbnailAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.thumbnail, parent, false);
return new ThumbnailAdapter.ViewHolder(v);
}
static class ViewHolder extends RecyclerView.ViewHolder {
CircularImageView thumbnail;
ViewHolder(View v) {
super(v);
thumbnail = (CircularImageView) v.findViewById(R.id.user_thumbnail);
}
}
private List<User> mDataSet;
private List<User> selectedUsers;
public ThumbnailAdapter(List<User> dataSet) {
mDataSet = dataSet;
selectedUsers = new ArrayList<>();
}
Установка адаптера:
mAdapter = new ThumbnailAdapter(users);
mRecyclerView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false));
mRecyclerView.setAdapter(mAdapter);
Вы могли бы оставить остальную часть кода адаптера? самое главное, onCreateViewHolder, а также код VH – HenriqueMS
@goldenb Добавлено. Я отклонил нерелевантный код, как общение с родительской деятельностью. –
Вы могли бы разместить сообщение «... // получение соответствующего пользователя из набора данных и других нерелевантных материалов»? – HenriqueMS