1
本質的に、私はレベルのリストを持っているrecyclerviewを持っています。しかし、本質的に、私は特定のアイテムは、彼らがまだロックされていないことを示唆する黒色の背景を持ちたい(種類のビデオゲームのように)特定のアイテムについて、recyclerview内のビューの背景を変更するにはどうすればよいですか?
私の現在の方法:。
@Override
public void onBindViewHolder(BracketsAdapter.ViewHolder viewHolder, int position) {
// Get the data model based on position
Bracket bracket = bracketsList.get(position);
int color = UserPreferences.getInstance().getBracket();
// Set item views based on your views and data model
TextView textView = viewHolder.nameTextView;
textView.setText(bracket.toString());
Log.d("Bracket level", ""+bracket.getId());
if(color < bracket.getId()) {
textView.setBackgroundResource(R.color.black); // suggests level is locked
}
}
この方法の問題それは最初に機能することですが、私が下にスクロールして戻った瞬間、色付けされるべきではないアイテムは着色されてしまいます。どうしてこれなの?これを実装するより良い方法はありますか?
良いキャッチ。私はrecyclerviewの仕組みについてもっと読むべきだった。 – AeriaGlorisia