我一直试图解决这个问题,超过3个小时。
JellyBeab 4.1.6
我有一个包含卡片视图的布局,我正在以编程方式设置setCardbackground颜色。
到目前为止我尝试过的是
CARD = (CardView) view.findViewById(R.id.cardMechInfo);
int[] array = new int[4];
array[0] = activity.getResources().getColor(R.color.LightSkyBlue);
array[1] = activity.getResources().getColor(R.color.Teal200);
array[2] = activity.getResources().getColor(R.color.LightGrey);
array[3] = activity.getResources().getColor(R.color.LightCoral);
int randomColor = new Random().nextInt(array.length);
CARD.setCardBackgroundColor(randomColor);
这样的布局文件层次结构。
<android.support.v7.widget.CardView
android:id="@+id/cardMechInfo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginTop="5dp"
android:layout_weight="1"
FAB:cardCornerRadius="5dp"
android:gravity="center_vertical|center_horizontal"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:gravity="center_vertical|center_horizontal"
android:orientation="horizontal"
> ..........
问题是当随机颜色设置时,颜色似乎出现在卡的末端,就像一条细线。
有没有人遇到这样的问题。请建议如何解决这个问题。
谢谢, Pusp
答案 0 :(得分:0)
您似乎在LinearLayout
内部CardView
并且周围有5dp
个边距。
如果您的LinearLayout
背景不透明,您将无法再看到CardView
的背景。因此,您可以将LinearLayout
的背景设置为透明或半透明,然后您可以看到CardView
的背景。
完全透明:
android:background="@android:color/transparent"
对于半透明,您可以设置它的Alpha通道。
答案 1 :(得分:0)
卡内的LinearLayout具有match_parent的宽度和高度,因此它遮挡了卡的大部分背景。
答案 2 :(得分:0)
<强>解强>
似乎pskink指出我随机值会返回一些惊喜值,因为他建议我使用它:
int randomColor = array[new Random().nextInt(array.length)];
然后它适用于cardView。