When I change the background of a Card view, the corner radius is reset
Same problem and fix the problem this way
At first, create the shape named in Drawable "shape_background_cardview" and this add below code
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/gray500" />
<corners android:radius="5dp" />
</shape>
step second, set the shape to the background CardView yourself
yourCardView.setBackgroundResource(R.drawable.shape_background_cardview);
GoodLuck
I found a solution to the question.
I needed to retrieve the background of the view and set its color, then I assigned the new background to the view.
Drawable backgroundOff = v.getBackground(); //v is a view
backgroundOff.setTint(defaultColor); //defaultColor is an int
v.setBackground(backgroundOff);
(This answer helped: https://stackoverflow.com/a/18394982/9377499)
If you try to use CardView with corner radius you will face this problem when you set background color dynamically. Please use yourCardView.setCardBackgroundColor()
methord instead of yourCardView.setBackgroundColor()
:)