Я пытаюсь использовать прорисовываемую тонировку, используя следующий код в RecyclerView
Drawable likeDrawable = ContextCompat.getDrawable(getActivity(), R.drawable.ic_thumb_up);
Drawable likeWrappedDrawable = DrawableCompat.wrap(likeDrawable);
DrawableCompat.setTint(likeWrappedDrawable,ContextCompat.getColor(getActivity(), android.R.color.white));
holder.ivLike.setImageDrawable(likeWrappedDrawable);
Теперь все это делается в onBindViewHolder адаптера RecyclerView
Я меняю этот оттенок между тремя цветами в зависимости от состояние этого элемента списка. Это отлично работает для Lolipop и выше, но ниже этой версии цвет элемента списка непредсказуем. Иногда он показывает правильный цвет, но при обновлении списка иногда он меняется на другой цвет.
Что-то, что я здесь делаю неправильно, или тонировка на предварительном леденце по-прежнему непригодна для использования в этом конкретном случае. ?
Обновить
Включая код из моего onBindViewHolder
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Drawable likeDrawable =
ContextCompat.getDrawable(getActivity(), R.drawable.ic_thumb_up);
Drawable likeWrappedDrawable = DrawableCompat.wrap(likeDrawable);
holder.tvLikeCount.setTextColor(ResUtil.getColor(R.color.light_font,
getActivity()));
DrawableCompat.setTint(likeWrappedDrawable,
ContextCompat.getColor(getActivity(), android.R.color.white));
if (tweetModel.isFavorited()) {
DrawableCompat.setTint(likeWrappedDrawable,
ContextCompat.getColor(getActivity(), android.R.color.holo_blue_light));
}
holder.ivLike.setImageDrawable(likeWrappedDrawable);
}
Подробнее здесь: https://stackoverflow.com/questions/352 ... e-lollipop