情况是,当我从程序修改卡片视图背景时,卡片视图的角半径会重置。但为什么呢? (我认为我不需要提供任何其他信息(代码,结果图片等),因为我认为它很清楚。如果您需要更多信息,那么您应该在评论中写下来。)
答案 0 :(得分:7)
如果尝试将CardView与角半径一起使用,则在动态设置背景颜色时会遇到此问题。请使用yourCardView.setCardBackgroundColor()
方法而不是yourCardView.setBackgroundColor()
:)
答案 1 :(得分:2)
我找到了问题的解决方案 我需要检索视图的背景并设置其颜色,然后我将新背景分配给视图。
Drawable backgroundOff = v.getBackground(); //v is a view
backgroundOff.setTint(defaultColor); //defaultColor is an int
v.setBackground(backgroundOff);
答案 2 :(得分:1)
相同的问题,并以此方式解决问题
首先,创建以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);
好运