Android 卡德维尤奇怪的行为

Android 卡德维尤奇怪的行为,android,view,background,android-cardview,elevation,Android,View,Background,Android Cardview,Elevation,我有一个简单的布局与CardView <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/cv_tag" android:l

我有一个简单的布局与CardView

<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/cv_tag"
android:layout_width="wrap_content"
android:layout_height="@dimen/tag_height"
android:layout_margin="4dp"
android:clickable="true"
app:cardCornerRadius="20dp"
app:cardElevation="2dp">

<FrameLayout
    android:id="@+id/fl_selection_indicator"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/tv_tag"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="8dp"
        android:textAppearance="@style/PrimaryWhiteText.Tiny"
        tools:text="Hard"/>

</FrameLayout>

</android.support.v7.widget.CardView>

如何删除立面和白色背景,为什么会发生这种情况


提前谢谢

可能是API 21之前实现的一个怪癖

同时,您可能并不完全需要CardView。考虑使用DababeReSurCE。 指

旧答案:

默认情况下,CardView会根据主题设置背景色。 这是一张不受款式限制的照片

<color name="cardview_dark_background">#FF424242</color>
<color name="cardview_light_background">#FFFFFFFF</color>

要更改颜色,请使用
app:cardBackgroundColor
属性

这可能是API 21之前实现的一个怪癖

同时,您可能并不完全需要CardView。考虑使用DababeReSurCE。 指

旧答案:

默认情况下,CardView会根据主题设置背景色。 这是一张不受款式限制的照片

<color name="cardview_dark_background">#FF424242</color>
<color name="cardview_light_background">#FFFFFFFF</color>
要更改颜色,请使用
app:cardBackgroundColor
属性

原始答案为

我的latout用于自定义视图,当我添加setBackgroundColor(ContextCompat.getColor(context,android.R.color.transparent));对于建筑商来说,立面和白色背景已经消失了。

原来的答案是


我的latout用于自定义视图,当我添加setBackgroundColor(ContextCompat.getColor(context,android.R.color.transparent));对于它的构建者来说,立面和白色背景已经消失了。

你确实有立面
app:cardElevation=“2dp”
很久以前,我也面临着同样的问题。在我的情况下,这是由于android:hardwareAccelerated=“false”menifest文件中的此属性希望这将帮助您……@IvBaranov它是卡的高度,应该只影响cardview(彩色部分),而不影响其背景(白色部分)@PankajSharma此属性在清单中删除了高度,但在所有视图上((所以它不起作用你确实有提升
app:cardElevation=“2dp”
很久以前我也面临同样的问题。在我的情况下,这是由于android:hardwareAccelerated=“false”menifest文件中的这个属性,希望这能帮助你……@IvBaranov它是卡的提升,应该只影响cardview(彩色部分)但不是它的背景(白色部分)@PankajSharma此属性在清单中删除了立面,但在所有视图上都是如此((因此它实际上不起作用,我正在使用“app:cardBackgroundColor”及其工作goog更改卡的背景色(您可以看到视图的彩色部分)。但问题是,系统似乎将我的布局包装在另一个带有立面和白色背景的框架布局中。如果我将此布局包装在自己的框架布局中,立面会消失,但白色背景仍然存在(我是指框架布局的白色背景,而不是CardView)@OlexiiMuraviov它绝对不是FrameLayout的白色背景,因为默认情况下它没有圆角。如果您告诉我们您的设备有什么API级别,这会有所帮助,因为在21和17之前使用了不同的CardView实现。另外,请参阅新编辑以获取替代方案。如果没有任何帮助,您可以转储XML hiera我已经解决了这个问题。找到了这个问题的答案。谢谢你们的努力!我的布局是一个自定义视图,当我在它的构造函数中设置setBackgroundColor(ContextCompat.getColor(context,Android.R.color.transparent))时标高和白色背景已经消失。是的,考虑到它在不同版本的Android上的工作方式,这个答案是有意义的。谢谢你的跟进!实际上,我正在用“app:cardBackgroundColor”和它的工作goog(你可以看到视图的彩色部分)更改卡片背景颜色。但问题是,系统似乎将我的布局包装在另一个带有立面和白色背景的框架布局中。如果我将此布局包装在自己的框架布局中,立面会消失,但白色背景仍然存在(我是指框架布局的白色背景,而不是CardView)@OlexiiMuraviov它绝对不是FrameLayout的白色背景,因为默认情况下它没有圆角。如果您告诉我们您的设备有什么API级别,这会有所帮助,因为在21和17之前使用了不同的CardView实现。另外,请参阅新编辑以获取替代方案。如果没有任何帮助,您可以转储XML hiera我已经解决了这个问题。找到了这个问题的答案。谢谢你们的努力!我的布局是一个自定义视图,当我在它的构造函数中设置setBackgroundColor(ContextCompat.getColor(context,Android.R.color.transparent))时标高和白色背景都消失了。是的,考虑到它在不同版本的Android上的工作方式,这个答案是有道理的。谢谢你的后续报道!