我的RecyclerView中有一些元素。现在我尝试更改每个元素的背景颜色,但我的代码不起作用......这是我的方法 onBindViewHolder
public void onBindViewHolder(CityViewHolder holder, int position) {
String cityName = cityList.get(position);
holder.cityTextView.setText(cityName);
if (position%2 == 0) {
holder.itemView.setBackgroundColor(ContextCompat.getColor(context, R.color.colorLightGrey));
}
else {
holder.itemView.setBackgroundColor(ContextCompat.getColor(context, R.color.colorGrey));
}
}
答案 0 :(得分:3)
这样做(适配器中的相同位置):
if (position%2 == 0) {
holder.itemView.setBackgroundColor(Color.parseColor("#fafafa"));
} else {
holder.itemView.setBackgroundColor(Color.parseColor("#ffffff"));
}
答案 1 :(得分:2)
尝试在setBackgroundColor
单个项目的根视图上使用RecyclerView
方法,而不是itemView
。像这样的东西:
holder.yourRootView.setBackgroundColor(ContextCompat.getColor(context, R.color.colorLightGrey));
请勿忘记在ViewHolder
构造函数中找到它:
public class CityViewHolder extends RecyclerView.ViewHolder {
private FrameLayout yourRootView;
public ViewHolder(View v) {
super(v);
yourRootView = (FrameLayout) v.findViewById(R.id.item_root_view);
}
}
根据您的项目,您可以使用任何视图类型而不是FrameLayout
。