Android:Cardview Background在4.1.2上变为黑色

时间:2016-03-10 17:33:37

标签: android android-layout user-interface

我正在使用google cardView支持库来获取我的卡功能。它适用于kitkat和版本,但卡的背景设置为黑色,填充/边距不适用于设备4.1.2。

<android.support.v7.widget.CardView
        android:id="@+id/all_goals_card_view"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_marginRight="20dp"
        android:layout_marginLeft="20dp"
        android:layout_gravity="center"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="20dp"
        android:padding="10dp"
        app:cardCornerRadius="4dp"
        card_view:cardPreventCornerOverlap="false"
        card_view:cardBackgroundColor="@android:color/white"
        >
 </android.support.v7.widget.CardView>

6 个答案:

答案 0 :(得分:37)

好吧,我偶然发现了同样的问题,我发现一些设备有一些“特殊的”非常轻的照明默认咳嗽三星咳嗽我会回答这个稍微陈旧的任务。

这里的问题是你最有可能使用错误的context来夸大你的布局。我认为您正在使用application-context这样做。 Application-Context不适用您定义的主题。

  

这个(充满应用程序上下文)是合法的,但通货膨胀   将使用您所在系统的默认主题   运行,而不是您的应用程序中定义的内容。*

例如,如果你这样做:

LayoutInflater.from(context).inflate(R.layout.menu_rental_list_item, parent, false);

context此处应为Activity-Fragment Context - 不是应用程序上下文。

请仔细检查。

*)啊,你想了解更多有关上下文的内容吗?请继续阅读here

答案 1 :(得分:7)

不要使用“@android:color / white”

card_view:cardBackgroundColor="#fff"

答案 2 :(得分:2)

这将解决问题:

      <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="#fff"
        card_view:cardBackgroundColor="#fff"
        android:layout_margin="2dp">

请注意以下几行:

xmlns:card_view="http://schemas.android.com/apk/res-auto"

and 

card_view:cardBackgroundColor="#fff"

答案 3 :(得分:1)

我在android 4.1.2设备上遇到了同样的问题。我在CardView中使用了一个带有形状可绘制的ImageView,这是真正的罪魁祸首。

请检查此link中的答案,这有助于我解决问题。

答案 4 :(得分:1)

就我而言,我将android:theme="@style/Theme.AppCompat.Light.NoActionBar"放入清单文件中进行相关活动

答案 5 :(得分:0)

不要使用

  

机器人:Theme.Dialog

  

android.R.style.Theme_Dialog

,如果您的CardView是DialogFragment或Dialog布局的一部分。