Bonjour, je travaille sur une application de démonstration dans laquelle j'utilise la vue de carte de la bibliothèque de support. Par défaut, il ajoute une ombre autour de lui. Je veux supprimer cette ombre et devrait ressembler à simple.
J'ai essayé ce qui ne fonctionne pas pour moi.
CardView cardView = (CardView) v.findViewById(R.id.cardView);
cardView.setElevation(0);
Après avoir fait cela, je reçois un crash
11-06 15:12:17.018: E/AndroidRuntime(24315): FATAL EXCEPTION: main
11-06 15:12:17.018: E/AndroidRuntime(24315): Process: com.xyz, PID: 24315
11-06 15:12:17.018: E/AndroidRuntime(24315): Java.lang.NoSuchMethodError: Android.support.v7.widget.CardView.setElevation
11-06 15:12:17.018: E/AndroidRuntime(24315): at com.xyz.adapters.RecycleViewAdapter.onCreateViewHolder(RecycleViewAdapter.Java:85)
11-06 15:12:17.018: E/AndroidRuntime(24315): at com.xyz.adapters.RecycleViewAdapter.onCreateViewHolder(RecycleViewAdapter.Java:1)
11-06 15:12:17.018: E/AndroidRuntime(24315): at Android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.Java:2915)
11-06 15:12:17.018: E/AndroidRuntime(24315): at Android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.Java:2511)
11-06 15:12:17.018: E/AndroidRuntime(24315): at Android.support.v7.widget.LinearLayoutManager$RenderState.next(LinearLayoutManager.Java:1425)
11-06 15:12:17.018: E/AndroidRuntime(24315): at Android.support.v7.widget.LinearLayoutManager$RenderState.next(LinearLayoutManager.Java:1425)
layout.xml
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.CardView xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:card_view="http://schemas.Android.com/apk/res-auto"
xmlns:app="http://schemas.Android.com/apk/res/com.xyz"
Android:id="@+id/cardView"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_marginBottom="5dp"
Android:layout_marginLeft="5dp"
Android:layout_marginRight="5dp"
Android:orientation="horizontal" >
Merci d'avance.
utiliser cet attribut en XML
card_view:cardElevation="0dp"
et n'oubliez pas d'ajouter xmlns:card_view="http://schemas.Android.com/tools"
dans votre mise en page racine.
OUvous pouvez appeler cardView.setCardElevation(0)
pour désactiver l’ombre par programmation.
La méthode cardView.setElevation()
et l'attribut CardView Android:elevation
jetteront Java.lang.NoSuchMethodError sur une plateforme antérieure à Android 5.0.
Essayez de mettre l'élévation en XML.
app:cardElevation="0dp"
OR
cardView.setCardElevation(0);
Et vérifiez que vous utilisez la dernière bibliothèque CardView.
Il suffit de mettre cette ligne dans votre CardView:
app:cardElevation="0dp"
J'espère que cela vous aidera.
Vous devriez d'abord ajouter ceci à la mise en page de votre parent
xmlns:card_view="http://schemas.Android.com/tools"
puis réglez l'altitude comme ceci
card_view:cardElevation="0dp"
Vous pouvez l'avoir en XML comme:
<Android.support.v7.widget.CardView
Android:id="@+id/card_view"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginLeft="2dp"
Android:layout_marginRight="2dp"
app:cardElevation="0dp"
app:cardCornerRadius="0.5dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true"
>
</Android.support.v7.widget.CardView>
j'espère que ça vous aide !!!
<Android.support.v7.widget.CardView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:cardElevation="0dp"
app:cardCornerRadius="2dp">
....`
</Android.support.v7.widget.CardView>
essayez comme ça peut vous aider,
CardView cardView = (CardView) v.findViewById(R.id.cardView);
cardView.setCardElevation(0);
Vous devez utiliser les attributs suivants
<Android.support.v7.widget.CardView
Android:id="@+id/card_view"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:cardElevation="0dp"
app:cardCornerRadius="0.5dp"
app:cardPreventCornerOverlap="false"
>
</Android.support.v7.widget.CardView>
CardView définit sa propre altitude lors de l'initialisation, ce qui remplacera tout ce que vous aurez défini à partir de XML. Vous devriez le signaler comme un bogue à chek this
@Override
public void initialize(CardViewDelegate cardView, Context context, int backgroundColor,
float radius) {
cardView.setBackgroundDrawable(new RoundRectDrawable(backgroundColor, radius));
View view = (View) cardView;
view.setClipToOutline(true);
view.setElevation(context.getResources().getDimension(R.dimen.cardview_elevation));
}
Dans mon cas, seul le réglage de background alpha avec les altitudes suggérées et backgroundColor masque la bordure de l'ombre:
this.setCardElevation(0);
this.setCardBackgroundColor(getContext().getResources().getColor(Android.R.color.transparent));
this.getBackground().setAlpha(0);