如果我更改第一个项目的背景颜色,那么在一些项目之后,另一个项目也会改变
If i change first item background color then after some items another item also get changed
我也在 getView 中尝试过,这是为了选中的项目应该突出显示。这是我的代码。我已经看到了与此相关但对我不起作用的每个答案。
slots.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
for(int i=0;i<list.size();i++)
{
View v=getViewByPosition(i,slots);
if(i==position)
{
v.setBackgroundColor(getResources().getColor(R.color.colorAccent));
}
else {
v.setBackgroundColor(getResources().getColor(R.color.AppBackground));
}
}
}
});
progress.dismiss();
}
public View getViewByPosition(int pos, HorizontalListView listView) {
final int firstListItemPosition = listView.getFirstVisiblePosition();
final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;
if (pos < firstListItemPosition || pos > lastListItemPosition ) {
return listView.getAdapter().getView(pos, null, listView);
} else {
final int childIndex = pos - firstListItemPosition;
return listView.getChildAt(childIndex);
}
}
ListView\RecyclerView的主要思想是View的复用。因此,当您在屏幕上滚动第一个活动项目时,移动到新的向下项目。
创建 Holder class,其中包含 vies 列表。和绑定方法,当你根据你的适配器型号设置正确的项目颜色时。sample
我也在 getView 中尝试过,这是为了选中的项目应该突出显示。这是我的代码。我已经看到了与此相关但对我不起作用的每个答案。
slots.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
for(int i=0;i<list.size();i++)
{
View v=getViewByPosition(i,slots);
if(i==position)
{
v.setBackgroundColor(getResources().getColor(R.color.colorAccent));
}
else {
v.setBackgroundColor(getResources().getColor(R.color.AppBackground));
}
}
}
});
progress.dismiss();
}
public View getViewByPosition(int pos, HorizontalListView listView) {
final int firstListItemPosition = listView.getFirstVisiblePosition();
final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;
if (pos < firstListItemPosition || pos > lastListItemPosition ) {
return listView.getAdapter().getView(pos, null, listView);
} else {
final int childIndex = pos - firstListItemPosition;
return listView.getChildAt(childIndex);
}
}
ListView\RecyclerView的主要思想是View的复用。因此,当您在屏幕上滚动第一个活动项目时,移动到新的向下项目。 创建 Holder class,其中包含 vies 列表。和绑定方法,当你根据你的适配器型号设置正确的项目颜色时。sample