Ситуация такова, что когда я изменяю фон вида Card
из программы, радиус угла вида Card
сбрасывается. Но почему?
(Я не думаю, что мне нужно предоставлять какую-либо другую информацию (код, изображение результата и т. д.), потому что я думаю, что это достаточно ясно для понимания. Если вам нужна дополнительная информация, вы можете следует написать в комментарии.)
Когда я меняю фон карты, радиус угла сбрасывается
Ответы (3)
Если вы попытаетесь использовать CardView с угловым радиусом, вы столкнетесь с этой проблемой при динамической установке цвета фона. Пожалуйста, используйте метод yourCardView.setCardBackgroundColor()
вместо yourCardView.setBackgroundColor()
:)
person
Dulanga
schedule
30.07.2018
Я нашел решение вопроса.
Мне нужно было получить фон представления и установить его цвет, а затем я назначил новый фон представлению.
Drawable backgroundOff = v.getBackground(); //v is a view
backgroundOff.setTint(defaultColor); //defaultColor is an int
v.setBackground(backgroundOff);
(Этот ответ помог: https://stackoverflow.com/a/18394982/9377499)
person
Noel Nemeth
schedule
15.04.2018
Работает как шарм, например, когда вы хотите изменить цвет каждого другого
CardView
внутри RecyclerView
и сохранить закругленные углы. Во время процесса вы можете получить доступ только к CardView
элементам как android.view.View
itemViews, у которых есть метод setBackgroundColor()
(он не работает), но нет доступного метода setCardBackgroundColor()
.
- person Theta; 28.11.2020
Та же проблема и решить проблему таким образом
Сначала создайте фигуру с именем Drawable shape_background_cardview и добавьте код ниже.
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/gray500" />
<corners android:radius="5dp" />
</shape>
шаг второй, установите фигуру на фон CardView самостоятельно
yourCardView.setBackgroundResource(R.drawable.shape_background_cardview);
Удачи
person
Mohamad
schedule
27.09.2020