我在资源文件中有以下XML代码,它代表RecyclerView中的项目:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android.support.v7.cardview="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android.support.v7.cardview:cardBackgroundColor="#9e9e9e"
android.support.v7.cardview:cardElevation="7dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:orientation="vertical">
<ImageView
android:id="@+id/type"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_gravity="end" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/field_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="2dp"
android:textColor="#000000"
android:textSize="20sp"
android:typeface="monospace" />
<LinearLayout
android:layout_width="15dp"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:id="@+id/main_recyclerview_item_actions"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:visibility="gone">
<Button
android:id="@+id/delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/delete"
android:textColor="@color/colorAccent"
style="@style/Widget.AppCompat.Button.Borderless"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
问题是CardView永远不会得到颜色:9e9e9e,如下图所示: 颜色是白色而不是9e9e9e
代码中的问题在哪里?我该如何解决这个问题?
答案 0 :(得分:3)
只需删除cardBackgroundColor属性,然后将android:background="#9e9e9e"
设置为布局中的第一个LinearLayout
。我的意思是这样:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android.support.v7.cardview="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android.support.v7.cardview:cardElevation="7dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#9e9e9e"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:orientation="vertical">
<ImageView
android:id="@+id/type"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_gravity="end" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/field_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="2dp"
android:textColor="#000000"
android:textSize="20sp"
android:typeface="monospace" />
<LinearLayout
android:layout_width="15dp"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:id="@+id/main_recyclerview_item_actions"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:visibility="gone">
<Button
android:id="@+id/delete"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DELETE"
android:textColor="@color/colorAccent" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
答案 1 :(得分:1)
尝试删除
android.support.v7
并仅设置
card_view:cardBackgroundColor="#9e9e9e"
希望能帮到你!
答案 2 :(得分:0)
app:cardBackgroundColor="@color/cv_bgcolor"
为我工作。
答案 3 :(得分:-1)
您可以修改此代码,如:
android.support.v7.cardview:cardBackgroundColor="@color/myColor"
然后转到Strings.xml
文件夹并添加以下行:
<color name="myColor">#e9e9e9</color>