У меня есть RecyclerView, отображающий Cardviews.Каждый CardView имеет пять (5) текстовых представлений.В зависимости от типа каждой карты я меняю цвет текста на красный, синий или зеленый (по умолчанию).Все это происходит в моем onBindViewHolder, поэтому производительность очень важна для моего пользовательского опыта.Вот что я делаю прямо сейчас в моем onBindViewHolder.
//set text color per card type
int int_textColor;
String type = arrayListFiltered.get(position).getType().toLowerCase();
String s_rating_type;
if (!FormatFactory.isStringEmpty(type)){
if (type.contains("featured")){
int_textColor = R.color.red;
}else if (type.contains("connector")){
int_textColor = R.color.blue;
}else{
int_textColor = R.color.green;
}
}else{
int_textColor =R.color.green;
}
setTextColor(recyclerViewHolder.tv_rating_type, int_textColor);
setTextColor(recyclerViewHolder.tv_length, int_textColor);
setTextColor(recyclerViewHolder.tv_name, int_textColor);
setTextColor(recyclerViewHolder.tv_location, int_textColor);
setTextColor(recyclerViewHolder.tv_summary, int_textColor);
, а вот мой метод setTextColor
private void setTextColor(TextView tv, int color){
tv.setTextColor(ContextCompat.getColor(tv.getContext(), color));
}
Существует множество способов изменить цвет текста, и я не смог найтилюбое обсуждение относительно метода, который обеспечивает лучшую производительность.Хотя этот код работает просто отлично, я бы переписал его для небольшого прироста производительности.