Редактировать: После выполнения небольшого локального теста, я думаю, проблема может заключаться в том, что TextViews, которые есть в каждой строке, находятся перед представлением строки ListView.Попробуйте установить цвета фона model.entry и model.score./ Edit
Я думаю, что это происходит из-за повторного использования convertViews.Попробуйте переместить это:
if (position == 6 || position == 7) {
row.setBackgroundColor(R.color.black);
}
За пределами блока if (row == null) и замените его следующим образом:
if (position == 6 || position == 7) {
model.entry.setBackgroundColor(R.color.black);
model.score.setBackgroundColor(R.color.black);
} else {
model.entry.setBackgroundColor(/*Whatever your default background color is*/);
model.score.setBackgroundColor(/*Whatever your default background color is*/);
}
Таким образом, ваш полный метод getView будет:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
RowModelViews model;
if (row == null) {
LayoutInflater inflater = LayoutInflater.from(GamePlayerActivity.this);
row = inflater.inflate(R.layout.game_line_layout, null);
model = new RowModelViews(row);
model.entry = (TextView) row.findViewById(R.id.gameLineEntry);
model.score = (TextView) row.findViewById(R.id.gameLineEntryScore);
row.setTag(model);
} else {
model = (RowModelViews) row.getTag();
}
if (position == 6 || position == 7) {
model.entry.setBackgroundColor(R.color.black);
model.score.setBackgroundColor(R.color.black);
} else {
model.entry.setBackgroundColor(/*Whatever your default background color is*/);
model.score.setBackgroundColor(/*Whatever your default background color is*/);
}
model.entry.setText(objects.get(position).entry);
model.score.setText(objects.get(position).score);
return row;
}