Ich blase ein benutzerdefiniertes Layout mit CardView im Layout auf. Die abgerundeten Ecken werden wie erwartet angezeigt, aber hinter den Ecken bekomme ich auch einen grauen Hintergrund.
Der Code ist einfach und verwendet eine CardView mit Eckenradius und Hintergrundfarbe. Ich habe versucht, den transparenten Hintergrund einzustellen, funktioniert aber nicht. Wenn ich jedoch eine andere undurchsichtige Farbe einstelle, wird diese in den Ecken angezeigt.
Code ist beigefügt.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@Android:color/transparent">
<Android.support.v7.widget.CardView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:cardBackgroundColor="@Android:color/white"
app:cardCornerRadius="6dp"
app:cardElevation="5dp">
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@Android:color/transparent">
<TextView
Android:id="@+id/tvProgress"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_alignParentStart="true"
Android:layout_centerVertical="true"
Android:layout_toLeftOf="@+id/ivIcon"
Android:layout_toStartOf="@+id/ivIcon"
Android:background="@Android:color/transparent"
Android:padding="@dimen/elementPaddingSmall"
Android:text="Initial Discussion"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:textColor="@Android:color/black" />
<ImageView
Android:id="@+id/ivIcon"
Android:layout_width="50dp"
Android:layout_height="50dp"
Android:layout_alignParentEnd="true"
Android:layout_alignParentRight="true"
Android:background="@color/lightBrown"
Android:scaleType="centerInside"
Android:src="@drawable/ic_checkmark_circle" />
</RelativeLayout>
</Android.support.v7.widget.CardView>
</RelativeLayout>
Ergebnis:
Es ist wegen des Schattens, Sie müssen dem Kartenblick Raum geben, um den vollen Schatten zu zeigen. Fügen Sie Android:layout_margin="5dp"
zu CardView hinzu, und Sie werden sehen, dass die "graue" Farbe Schatten ist.
Lösung fügt CardView app:cardUseCompatPadding="true"
hinzu und gibt den erforderlichen Abstand an.
Versuche dies...
Setzen Sie den Wert 0 einfach auf app: cardElevation
.....
<Android.support.v7.widget.CardView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:cardBackgroundColor="@Android:color/white"
app:cardCornerRadius="6dp"
app:cardElevation="0dp">
.....
ODERSie können cardView.setCardElevation (0) aufrufen, um den Schatten programmgesteuert zu deaktivieren.
Entfernen Sie die übergeordnete RelativeLayout
, die die CardView
-Datei umschließt, und Sie können loslegen. Genau wie dieser:
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.CardView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:cardBackgroundColor="@Android:color/white"
app:cardCornerRadius="6dp"
app:cardElevation="5dp">
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@Android:color/transparent">
<TextView
Android:id="@+id/tvProgress"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_alignParentStart="true"
Android:layout_centerVertical="true"
Android:layout_toLeftOf="@+id/ivIcon"
Android:layout_toStartOf="@+id/ivIcon"
Android:background="@Android:color/transparent"
Android:padding="@dimen/elementPaddingSmall"
Android:text="Initial Discussion"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:textColor="@Android:color/black"/>
<ImageView
Android:id="@+id/ivIcon"
Android:layout_width="50dp"
Android:layout_height="50dp"
Android:layout_alignParentEnd="true"
Android:layout_alignParentRight="true"
Android:background="@color/lightBrown"
Android:scaleType="centerInside"
Android:src="@drawable/ic_checkmark_circle"/>
</RelativeLayout>
</Android.support.v7.widget.CardView>
Wenn jemand das Problem hat, wenn die Farbe der Kanten dunkler ist, als Sie festgelegt haben, kann dies passieren, wenn Sie die Farbe im #AARRGGBB
-Format festlegen. Um dieses Problem zu beheben, legen Sie einfach die Farbe im normalen #RRGGBB
-Format fest.