CardView in RecyclerView hat zusätzliche Gewinnspannen
Ich bin mit einem CardView als element innerhalb einer RecyclerView. Wenn Sie dies tun android automatisch generiert Ränder zwischen cardView und dem Bildschirm sowie zwischen verschiedenen cardViews.
<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"
android:background="@color/galleryCardBGColor"
app:cardCornerRadius="2dp" >
<android.support.v7.widget.RecyclerView
android:id="@+id/my_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical" />
Folgte ich den Anweisungen in den link zu integrieren, Sie in meinem Projekt:
mit-recyclerview-und-cardview-in-eclipse-adt
Hatte ich vorher mit einem linearlayout für die Liste-element :
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
Dieser arbeiten war absolut in Ordnung, keine Pannen jeglicher Art zwischen der Listen-Elemente. Ich habe jetzt nur die linearen layout im inneren der cardView geführt hat extra Margen.
Grund dafür ist, dass ich möchte, um die genauen Margen, um diese Elemente, und alle Margen, die ich liefern jetzt wird zusätzlich zu diesen bereits vorhandenen Margen.
Ich habe versucht, die Versorgung der null - /negativ-Polster/Ränder auf die cardView-element, aber keine dieser arbeiten.
Jede Idee, die ich entfernen kann, diese Ränder oder sonst genau wissen, wie viel Marge Hinzugefügt wird.
InformationsquelleAutor der Frage vj9 | 2014-11-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
haben Sie überprüft, ob es margin oder padding? (Dev-Optionen /anzeigen-layout-Grenzen)
CardView
fügt Polsterung in Plattformen pre-L und Schatten zeichnen. In L, es sei denn, SieuseCompatPadding=true
es sollte keine Lücke.Hinzufügen von negativen Margen (obwohl es hässlich ist) funktionieren sollte. Wenn es nicht ist, fügen Sie bitte etwas mehr code, wie Sie hinzufügen und wie Sie die Einrichtung der
RecyclerView
.InformationsquelleAutor der Antwort yigit
Es funktionierte für mich. Verwendung:
InformationsquelleAutor der Antwort Shubham
Gerade beschrieben in @yigit 's Antwort, die CardView fügen ein Standard-Polsterung, um es zu zeichnen, die Schatten vor Android L. Die Polsterung Größe ist beschrieben in CardView doc.
Fand ich den Weg zum löschen dieser Polsterung (auch das hinzufügen Polsterung für den Inhalt), ist die Verwendung CardView ist contentPaddingLeft(/Rechts/Oben/Unten) Attribute.
Wenn Sie möchten, deaktivieren Sie die Standardeinstellung, können Sie dem contentPadding minus Wert. Wenn Sie möchten, fügen Sie Inhalt, Polsterung, legen Sie die contentPadding den Wert, den Sie wollen.
In meinem Fall, ich benutze diesen code deaktivieren Sie die Standard-Polsterung:
Habe ich versucht @Shubham 's Antwort, aber eine IllegalStateException geworfen wird RadialGradient.java mit der Meldung "radius muss > 0".
InformationsquelleAutor der Antwort Piasy
Verwenden Sie diese zwei tags unter:
InformationsquelleAutor der Antwort Omar Faroque Anik
hinzufügen
card_view:cardPreventCornerOverlap="false"
zu Ihremcard
Es funktioniert nur, wenn Ihr Bild hat Abgerundete Ecken
InformationsquelleAutor der Antwort Shayan_Aryan
Gut, scheint, es ist ein viel einfacher Weg, es zu tun, ohne zu raten, die Polster und alle:
oder mit java:
InformationsquelleAutor der Antwort Ani kukadiya
Den Kommentar von @vj9 unter die zulässige Frage hat mir geholfen, zur Berechnung des offsets. Den Austausch hier, weil es vielleicht jemand anderes helfen:
InformationsquelleAutor der Antwort Markus Rubey
verwenden
auf die Ansicht, die Sie wollen, eingehüllt in die cardview
InformationsquelleAutor der Antwort Kai Lean
Ich weiß, das ist spät, aber ich hoffe, es wird jemand helfen
Einstellung app:cardPreventCornerOverlap auf false gesetzt ist, wird den trick tun 🙂
InformationsquelleAutor der Antwort Zubair Rehman
Wenn Sie don ' T müssen den Eckenradius oder Erhöhung Vorgänger, erwägen Sie die Verwendung
FrameLayout
auf pre-Lollipop.<include layout="@layout/card_view_compat" />
layout/card_view_compat
layout-v21/card_view_compat
InformationsquelleAutor der Antwort owjsub
myCardView.setShadowPadding(0,0,0,0);
InformationsquelleAutor der Antwort wildzic