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:
i use normal recyclerview in activity within fragment same adapter , looks fine. here example:
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
first wrong way
myadapter adapter = new myadapter( getapplicationcontext(), r.layout.recycler_row_layout_person, arraylist );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
Post a Comment