gpt4 book ai didi

Android RecyclerView如何更改第一个项目的文本颜色

转载 作者:行者123 更新时间:2023-12-02 17:09:28 25 4
gpt4 key购买 nike

我正在使用AdapterRecyclerView。我尝试更改 RecyclerView 中第一个项目的颜色。我在我的 onBindViewHolder 中执行此操作,第一个确实改变了我想要的方式,但如果我进一步检查 8 个 View ,我会发现该 View 也发生了更改。有点一致,项目编号 0 改变了,1,2,3,4 不是 5 是,6,7,8,9 不是 10 等等...

如果我去调试,我会发现我的 if 语句被触发了很多时间。如果我在互联网上搜索,我会看到人们使用相同的方式(在 onBindViewHolder 中)。不知道我做错了什么:(

@Override
public void onBindViewHolder(@NonNull oScheduleAvailabilityViewHolder scheduleAvailabilityViewHolder, int position) {
oSchedule oSchedule = oScheduleArrayList.get(position);
scheduleAvailabilityViewHolder.scheduleAvailabilityTextView.setTypeface((oSchedule.getSelected()) ? Typeface.DEFAULT_BOLD : Typeface.SANS_SERIF);
scheduleAvailabilityViewHolder.scheduleAvailabilityTextView.setText(oSchedule.getScheduleName());

if (position == 0) {
scheduleAvailabilityViewHolder.scheduleAvailabilityTextView.setTextColor(0xFFd45155);
scheduleAvailabilityViewHolder.test.setBackgroundColor(0xFF1D3587);
}
}

我只想更改第一个项目(adapterPosition 0 或位置 0)的颜色和背景。目前还有大量其他观点。

最佳答案

我认为这种方式可以更好地提高性能。每次创建/回收时只会触发第一个项目。

private static final int TYPE_AVAILABILITY = 1;
private static final int TYPE_WEEK = 2;

我之前在项目中用过一次这种方式。

@Override
public void onBindViewHolder(@NonNull oScheduleAvailabilityViewHolder scheduleAvailabilityViewHolder, int position) {
oSchedule oSchedule = oScheduleArrayList.get(position);
scheduleAvailabilityViewHolder.scheduleAvailabilityTextView.setTypeface((oSchedule.getSelected()) ? Typeface.DEFAULT_BOLD : Typeface.SANS_SERIF);
scheduleAvailabilityViewHolder.scheduleAvailabilityTextView.setText(oSchedule.getScheduleName());

if (scheduleAvailabilityViewHolder.getItemViewType() == TYPE_AVAILABILITY) {
Log.i(TAG, "onBindViewHolder: TEST FIRST");
scheduleAvailabilityViewHolder.scheduleAvailabilityTextView.setTextColor(0xFFd45155);
scheduleAvailabilityViewHolder.test.setBackgroundColor(0xFF1D3587);
}
}
@Override
public int getItemViewType(int position) {
if (position == 0) {
return TYPE_AVAILABILITY;
} else {
return TYPE_WEEK;
}
}

关于Android RecyclerView如何更改第一个项目的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56749319/

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