gpt4 book ai didi

java - RecyclerView onCreateViewHolder位置背景颜色

转载 作者:行者123 更新时间:2023-12-01 19:39:24 25 4
gpt4 key购买 nike

我需要在onCreateViewHolder内设置背景颜色。因此,当我的 position 等于 position % 2 == 0 时,设置背景颜色,否则设置另一种颜色。我的背景颜色是所有行的标准颜色,这就是为什么我想在 onCreateViewHolder 而不是 onBindViewHolder 中使用它。如果我错了请纠正我。问题是,当我在 onCreateViewHolder 中使用 holder.getAdapterPosition 时,它返回 '-1'。对我来说这似乎很正常。但我该如何解决这个问题?

  @Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {


View mView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.inflate_common_item, viewGroup, false);
ViewHolder holder= new ViewHolder(mView);
if(holder.getAdapterPosition % 2 ==0)
{
//Row BackgroundColor to red.
}
else
{
//Row BackgroundColor to Green.
}
return holder;

}

因此,当我使用上面的代码时,我收到异常,它是索引越界。有什么办法可以解决吗?

最佳答案

试试这个:

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.inflate_common_item, viewGroup, false);
return new ViewHolder(view);
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if(position % 2 ==0) {
holder.itemView.setBackgroundColor(
ContextCompat.getColor(holder.itemView.getContext(), R.color.color_red));
} else {
holder.itemView.setBackgroundColor(
ContextCompat.getColor(holder.itemView.getContext(), R.color.color_green));
}
}

关于java - RecyclerView onCreateViewHolder位置背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55862934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com