Je travaille avec des vues de carte, mais le problème est que mon CardView ne montre aucune élévation ou ombre. J'ai déjà essayé certaines des méthodes suggérées dans les réponses stackoverflow, comme j'ai essayé d'utiliser les propriétés elevation et shadow. J'ai également essayé d'utiliser card_view: cardUseCompatPadding = "true", mais sans succès. Ceci est mon fichier XML
<?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"
xmlns:card_view="http://schemas.Android.com/tools"
Android:layout_marginLeft="12dp"
Android:layout_marginRight="12dp"
Android:layout_marginTop="6dp"
Android:layout_marginBottom="6dp"
app:cardBackgroundColor="#FAFBFD"
app:cardElevation="5dp">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical">
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<de.hdodenhof.circleimageview.CircleImageView
Android:id="@+id/post_profile_image"
Android:layout_width="50dp"
Android:layout_height="50dp"
Android:src="@mipmap/ic_launcher"
Android:layout_marginLeft="12dp"
Android:layout_marginTop="12dp"/>
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_toRightOf="@id/post_profile_image"
Android:layout_marginLeft="12dp"
Android:orientation="vertical"
Android:layout_marginTop="16dp">
<TextView
Android:id="@+id/post_username"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Name"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:textColor="#000000"/>
<TextView
Android:id="@+id/post_time"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginTop="2dp"
Android:text="Time"
Android:textAppearance="?android:attr/textAppearanceSmall"
Android:textColor="@color/grayColor"/>
</LinearLayout>
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentRight="true">
<ImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="@Android:drawable/ic_delete"
Android:id="@+id/post_delete_btn"
Android:visibility="invisible"/>
</LinearLayout>
</RelativeLayout>
<ImageView
Android:id="@+id/post_image"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_centerHorizontal="true"
Android:layout_marginTop="12dp"
Android:adjustViewBounds="true"
Android:background="#00ffffff"
Android:src="@drawable/add_btn"
Android:visibility="gone"/>
<TextView
Android:id="@+id/post_text"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginTop="12dp"
Android:layout_marginLeft="12dp"
Android:text="Text about Posting...."
Android:textAppearance="?android:attr/textAppearanceMedium"/>
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="12dp"
Android:layout_marginBottom="8dp">
<ImageButton
Android:id="@+id/like_btn"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginLeft="12dp"
Android:background="#00ffffff"
Android:src="@drawable/grey_like_bt"/>
<TextView
Android:id="@+id/post_like_count"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginLeft="4dp"
Android:layout_marginTop="8dp"
Android:text="0 Likes"
Android:textColor="#2196F3"/>
<ImageButton
Android:id="@+id/comment_btn"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginLeft="32dp"
Android:background="#00ffffff"
Android:src="@drawable/comment_btn_gray"/>
<TextView
Android:id="@+id/post_comment_count"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginLeft="4dp"
Android:layout_marginTop="8dp"
Android:text="0 Comments"
Android:textColor="#2196F3"/>
<RelativeLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
<ImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="@Android:drawable/ic_menu_edit"
Android:visibility="invisible"
Android:id="@+id/post_edit_btn"
Android:layout_alignParentRight="true"/>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</Android.support.v7.widget.CardView>
Je ne sais pas pourquoi il ne montre aucune élévation ni ombre
N'oubliez pas que pour dessiner une ombre, vous devez utiliser un dessin accéléré par matériel
<application Android:hardwareAccelerated="true" ...>
voir les détails https://developer.Android.com/guide/topics/graphics/hardware-accel.html?hl=ru
<Android.support.v7.widget.CardView Android:id="@+id/item_card"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
app:cardCornerRadius="2dp"
app:cardUseCompatPadding="true"
app:cardElevation="2dp"
app:cardBackgroundColor="@color/md_white_1000"
Android:foreground="?android:attr/selectableItemBackground"
Android:clickable="true">
</Android.support.v7.widget.CardView>
Si votre fichier de manifeste comporte une ligne Android:hardwareAccelerated="false"
, supprimez-le.
La réponse est une combinaison de la marge et du remplissage de cardView et de son parent.
Essayez comme ça:
<Android.support.v7.widget.CardView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginBottom="@dimen/minimum_dimem"
Android:layout_marginLeft="@dimen/default_margin"
Android:layout_marginRight="@dimen/default_margin"
Android:layout_marginTop="@dimen/minimum_dimem"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/cardview_radius"
app:cardElevation="@dimen/cardview_default_elevation">
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical"
Android:padding="@dimen/ten_dimem">
...
</RelativeLayout>
</Android.support.v7.widget.CardView>
Essaye ça
<Android.support.v7.widget.CardView
Android:id="@+id/driverCurrentJobsCardView"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_margin="@dimen/dim_8"
Android:background="#ffffff"
app:cardCornerRadius="4dp"
card_view:cardElevation="4dp"/>
Et assurez-vous que vous utilisez cette dépendance gradle
compile 'com.Android.support:cardview-v7:23.2.1'
Vous devriez avoir à essayer ceci:
<Android.support.v7.widget.CardView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_margin="5dp"
app:cardElevation="3dp">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical">
</LinearLayout>
<!--Put your other fields between this-->
</Android.support.v7.widget.CardView>
<Android.support.v7.widget.CardView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:cardElevation="10dp"
app:cardCornerRadius="4dp"
app:cardBackgroundColor="#ffff8800">
......
</Android.support.v7.widget.CardView>
Supprimez d'abord la couleur d'arrière-plan, ajoutez l'élévation, puis ajoutez à nouveau l'arrière-plan. Travaillé pour moi, même si j’avais ajouté l’arrière-plan par l’intermédiaire du maquettiste.
Ajouter cette ligne dans le widget CardView
app:cardElevation="5dp"
espérons que cela aidera!
supprimer la ligne ci-dessous de AndroidManifest.xml
Android:hardwareAccelerated="false"
utilisez cette carte à l'intérieur pour afficher l'ombre:
app:cardElevation="4dp"
app:cardMaxElevation="4dp"
Essayez de mettre ceci dans votre rootview:
xmlns:card_view="http://schemas.Android.com/apk/res-auto"
et utilisez ce code pour l'altitude:
card_view:cardElevation="10dp"