我正在使用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>
答案 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布局的一部分。