【问题标题】:CardView background color always whiteCardView 背景颜色总是白色
【发布时间】:2017-01-09 16:53:46
【问题描述】:

我将 RecyclerView 与 GridLayoutManager 一起使用,并且我将每个项目都作为 CardView。

很遗憾,这里的 CardView 似乎没有改变它的背景颜色。我也尝试过布局和编程方式,但似乎没有任何效果。

我已经挣扎了很长时间。如果有人可以帮助我解决这个问题,我将不胜感激。

【问题讨论】:

  • card_view:cardBackgroundColor="@android:color/white" 用这个检查一下。
  • 需要代码帮助
  • 代码很长,所以我没有贴出来。让我发布一些相关的代码。
  • 当我通过代码在这里发布时,我发现我把 cardView.setCardBackgroundColor(Color.WHITE);这就是它总是白色的原因。

标签: android android-recyclerview android-cardview


【解决方案1】:

如果要更改卡片背景颜色,请使用:

app:cardBackgroundColor="@somecolor"

像这样:

<android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardBackgroundColor="@color/white">

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

编辑: 正如@imposible 所指出的,您需要包含

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

在你的根 XML 标记中,以使这个 sn-p 函数

【讨论】:

  • 感谢您的回答,不胜感激。
  • 当我这样使用它时它对我有用 ---> card_view:cardBackgroundColor="@color/white"
  • 在你的布局文件中包含 xmlns:app="schemas.android.com/apk/res-auto"。
  • 我正在使用android.support.v7.widget.CardView。使用 app:cardBackgroundColor="@somecolor" 对我有用,但 card_view:cardBackgroundColor="@somecolor" 没有。
  • 谢谢!
【解决方案2】:

您可以在 XML 中或以编程方式进行:

在 XML 中:

card_view:cardBackgroundColor="@android:color/red"

以编程方式:

cardView.setBackgroundColor(ContextCompat.getColor(this, R.color.my_color));

【讨论】:

  • 谢谢你的回答,我解决了。我在我看不到的地方以编程方式更改了颜色。
【解决方案3】:

用于 XML

的 Kotlin

app:cardBackgroundColor="@android:color/red"

代码

cardName.setCardBackgroundColor(ContextCompat.getColor(this, R.color.colorGray));

【讨论】:

  • 谢谢。我以前使用 card.setCardBackgroundColor(R.color.bla) 导致非常奇怪的结果。通过 ContextCompat 获取颜色对我有用。
  • 正确,关键是使用ContextCompat.getColor而不是直接设置颜色。
  • 工作就像一个完美的魅力
【解决方案4】:

XML 代码

<android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view_top"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:cardCornerRadius="5dp"
        app:contentPadding="25dp"
        app:cardBackgroundColor="#e4bfef"
        app:cardElevation="4dp"
        app:cardMaxElevation="6dp" />

来自代码

CardView card = findViewById(R.id.card_view_top);
card.setCardBackgroundColor(Color.parseColor("#E6E6E6"));

【讨论】:

    【解决方案5】:

    在 XML 中:

    app:cardBackgroundColor="@color/your_color_name"
    

    JavaKotlin 中,您都可以通过编程方式完成:

    cardView.setCardBackgroundColor(ContextCompat.getColor(this, R.color.your_color_name));
    

    【讨论】:

      【解决方案6】:

      app:cardBackgroundColor="#488747"

      在您的卡片视图中使用它,您可以更改卡片视图的颜色

      【讨论】:

        【解决方案7】:

        你可以使用

        app:cardBackgroundColor="@color/red"
        

        android:backgroundTint="@color/red"
        

        【讨论】:

          猜你喜欢
          • 2018-08-19
          • 2015-02-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多