Ich versuche, einigen Ansichten in einer App Rundungen und Schatten hinzuzufügen und nutze dazu die Kartenansichts-Bibliothek. Es sieht auf Lollipop-Geräten gut aus, aber es gibt Kompatibilitätsprobleme mit allem, was vor dem Lollipop ist.White Space mit CardView auf Pre-Lollipop-Geräten
Ich werde das vorweg bringen, indem ich sage, dass ich die Antworten in den folgenden Fragen betrachtet habe, dass keine von ihnen für mich arbeiten.
- Appcompat CardView and Picasso no rounded Corners
- Cardview - white border around card
- Unnecessary padding in CardView?
Die populärste Antwort war das Attribut 'cardPreventOverlap = false', aber diese entfernt die abgerundeten Ecken hinzuzufügen. Ich habe Variationen dieser Flagge und 'cardUseCompatPadding = "true"' versucht, aber keiner von ihnen scheint den Trick zu machen. Hat jemand anderes das gleiche Problem?
Mein Code:
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
card_view:cardCornerRadius="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/selector"
android:gravity="center"
android:orientation="horizontal" >
<ImageView
android:layout_width="44dp"
android:layout_height="match_parent"
android:layout_marginRight="4dp"
android:background="@color/mid_yellow"
android:padding="0dp"
android:src="@drawable/ic_add_white_24dp" />
<TextView
style="@style/Text.Primary.White"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:text="Button" />
</LinearLayout>
Dies ist, wie es zur Zeit auf Android 5.0 aussieht:
Die exakt gleichen Code auf 4.4.2 wie folgt angezeigt:
Mit 'cardPreventOverlap = false':
aktualisieren Leider waren wir das Problem zu lösen, nicht in der Lage; Angesichts der Tatsache, dass die App nur eine kleine Installationsbasis vor 5.0 hatte, entschieden wir uns, dass es nicht wichtig war. Am Ende ging die dritte Option 'cardPreventOverlap = false'.
ich fürchte, das es nicht anders aussehen macht. Wenn jedes Element eine Form wäre, dann würde ja die Ecke bei jeder Form UND mit cardPreventCornerOverlap = "false" funktionieren, aber es gibt auch Bilder und andere Ansichten an einigen Stellen, wo ich es brauche, in denen ich die Ecken nicht ändern kann. – RobVoisey
Aber du kannst es einfach auf dein 'linearlayout' legen nein? Mit einer transparenten Hintergrundfarbe und negativen Padding sollte es auch funktionieren. –
Es wäre nicht so, dass sich der Hintergrund des linearen Layouts nicht auf seine untergeordneten Elemente auswirkt. Quadratische Kinder würden immer noch in der oberen linken Ecke platziert werden, um den Linearlayouts-Hintergrund abzudecken; Ich möchte, dass auch die Kinder abgerundet werden, alle Kinder sind richtig auf Lollipop gerundet. – RobVoisey