android - CardView suddenly turned black -


i've got problem cardview in recyclerview. cardview became black , ratingbar became blue. i'm using infiniterecyclerview changing simple recyclerview has no effect. can change cardview's background colour white ratingbar still blue. example of happening:

black cardview

i use normal recyclerview in activity within fragment same adapter , looks fine. here example:

normal cardview

this single_recipe_recycler_item.xml layout file:

<?xml version="1.0" encoding="utf-8"?>  <android.support.v7.widget.cardview xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginleft="5dp" android:layout_marginright="5dp" android:layout_margintop="5dp">  <linearlayout     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:background="?android:attr/selectableitembackground"     android:orientation="horizontal">      <imageview         android:id="@+id/recipe_recycler_image"         android:layout_width="80dp"         android:layout_height="match_parent"         android:layout_gravity="center_vertical"         android:src="@mipmap/ic_launcher" />      <relativelayout         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:paddingbottom="5dp"         android:paddingleft="10dp"         android:paddingright="10dp"         android:paddingtop="5dp">          <!-- realmrecipe title -->         <textview             android:id="@+id/recipe_recycler_title"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_alignparentend="true"             android:layout_alignparentright="true"             android:gravity="end"             android:text="very very very long title"             android:textcolor="@color/colorblack"             android:textsize="@dimen/title"             android:textstyle="bold" />          <!-- publisher -->         <textview             android:id="@+id/recipe_recycler_publisher"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_alignparentend="true"             android:layout_alignparentright="true"             android:layout_below="@id/recipe_recycler_title"             android:layout_margintop="5dp"             android:text="publisher"             android:textcolor="@color/colorblack"             android:textsize="@dimen/genre"             android:textstyle="italic" />          <!-- rating -->         <ratingbar             android:id="@+id/recipe_recycler_rating_bar"             style="@style/widget.appcompat.ratingbar.small"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_alignparentend="true"             android:layout_alignparentright="true"             android:layout_below="@id/recipe_recycler_publisher"             android:layout_margintop="5dp"             android:isindicator="true"             android:max="5" />      </relativelayout>  </linearlayout>  </android.support.v7.widget.cardview> 

this apptheme:

<style name="apptheme" parent="theme.appcompat.light.noactionbar">     <!-- customize theme here. -->     <item name="colorprimary">@color/colorprimary</item>     <item name="colorprimarydark">@color/colorprimarydark</item>     <item name="coloraccent">@color/coloraccent</item> </style> 

why happening? there bug in cardview? suggestions on how fix this?

i encountered same issue , here how solved it. make sure adapter inflates layout follows. understand better let's call adapter myadapter

@override public view getview(int position, view view, viewgroup parent) {     if (view == null){         layoutinflater layoutinflater = (layoutinflater) getcontext()                 .getsystemservice(activity.layout_inflater_service);         view = layoutinflater.inflate(r.layout.recycler_row_layout_person, null, true);      } 

then activity in you'll using adapter, make sure you're using right context. we'll using myadapter in activity called myactivity. wrong ways use layout inflator wrong context follows

  1. first wrong way

    myadapter adapter = new myadapter(                              getapplicationcontext(), r.layout.recycler_row_layout_person, arraylist                      ); 
  2. second wrong way

    myadapter adapter = new myadapter(                              getcontext(), r.layout.recycler_row_layout_person, arraylist                      ); 

here's right way it. , way solved it.

myadapter adapter = new myadapter(                                  myactivity.this, r.layout.recycler_row_layout_person, arraylist                          ); 

i hope helps


Comments

Popular posts from this blog

java - Static nested class instance -

c# - Bluetooth LE CanUpdate Characteristic property -

JavaScript - Replace variable from string in all occurrences -