Я пытаюсь создать RecyclerView
с CardView
элементами, каждый из которых имеет свой цвет.Я использую адаптер и передаю ресурс для цвета.
Проблема в том, что мои элементы вместо того, чтобы иметь цвет, которым я передал (например: красный, синий или зеленый), имеют разные оттенки фиолетового.
Если я использую тот жекод для дочернего Relative Layout, цвета работают отлично, но они не заполняют всю карточку.
Это элемент списка:
<android.support.v7.widget.CardView
android:id="@+id/rl_main_list_background_color"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:cardCornerRadius="16dp"
android:layout_marginBottom="8dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_main_list_game_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Game"
android:layout_margin="16dp"
android:textStyle="bold|italic"
android:textSize="20sp"/>
</RelativeLayout>
</android.support.v7.widget.CardView>
Это адаптер
public class GamesListAdapter extends RecyclerView.Adapter<GamesListAdapter.GamesViewHolder> {
private ArrayList<GameItem> mGamesList;
public static class GamesViewHolder extends RecyclerView.ViewHolder{
public TextView mGameName;
public CardView mItemRelativeLayour;
public GamesViewHolder(@NonNull View itemView) {
super(itemView);
mGameName = itemView.findViewById(R.id.tv_main_list_game_name);
mItemRelativeLayour = itemView.findViewById(R.id.rl_main_list_background_color);
}
}
public GamesListAdapter(ArrayList<GameItem> gamesList){ mGamesList = gamesList;}
@NonNull
@Override
public GamesViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.main_list_list_element, viewGroup, false);
GamesViewHolder gamesViewHolder = new GamesViewHolder(view);
return gamesViewHolder;
}
@Override
public void onBindViewHolder(@NonNull GamesViewHolder gamesViewHolder, int i) {
GameItem currentItem = mGamesList.get(i);
gamesViewHolder.mGameName.setText(currentItem.getGameName());
gamesViewHolder.mItemRelativeLayour.setCardBackgroundColor(currentItem.getBackgroundColor());
}
@Override
public int getItemCount() {
return mGamesList.size();
}
}
И вот как я заполняю список
gamesList = new ArrayList<>();
gamesList.add(new GameItem("Truth or Dare", R.color.truthOrDareColor));
gamesList.add(new GameItem("Kings", R.color.kingsColor));
gamesList.add(new GameItem("Flip the card(Urmatoarea Carte)", R.color.flipTheCardColor));
gamesList.add(new GameItem("Most likely to", R.color.mostLikelyToColor));
gamesList.add(new GameItem("Spin the bottle", R.color.spinTheBottleColor));
gamesList.add(new GameItem("I have sex like", R.color.iHaveSexLikeColor));
gamesList.add(new GameItem("Never have I ever", R.color.neverHaveIEverColor));
Есть идеи, как это исправить?Спасибо!