2016-02-01 16 views
6

Ich versuche, abgerundete Ecken und Polsterung zu meinen Kartenansichten hinzufügen, Eckenradius scheint nicht zu funktionieren, wenn ich Inhalt Padding habe.CardView Polsterung und abgerundete Ecken

Dies ist meine aktuelle XML:

<android.support.v7.widget.CardView 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/cardView" 
    android:layout_width="71dp" 
    android:layout_height="39dp" 
    card_view:cardElevation="0dp" 
    card_view:cardUseCompatPadding="false" 
    card_view:cardPreventCornerOverlap="false" 
    card_view:cardCornerRadius="7dp" 
    card_view:contentPaddingLeft="4dp" 
    card_view:contentPaddingRight="4dp"> 

    <TextView 
     android:id="@+id/title" 
     android:layout_width="71dp" 
     android:layout_height="39dp" 
     android:textColor="#ffffff" 
     android:background="#FF9400" 
     android:gravity="center" /> 
</android.support.v7.widget.CardView> 

Wenn ich den Inhalt Polsterung entfernen, dann die Eckenradius funktioniert, aber ich beide brauchen.

Wer hat irgendwelche Ideen? Ich weiß, dass ich cardUseCompatPadding auf True setzen kann, aber dann hat die gesamte Karte Padding, die mit der Textansicht verschmiert.

EDIT:

Hier ist der Entwurf, den ich zur Zeit habe, und was ich zu replizieren:

enter image description here

+1

Verwenden Marge statt Klotzen, werfen Sie einen Blick auf diese Antwort: http://stackoverflow.com/a/34581086 –

+0

Ich habe versucht, dass leider, und aus irgendeinem Grund wird keine Marge hinzugefügt. – user3746428

+0

Haben Sie eine Benutzeroberfläche, könnten Sie einen Screenshot von dem erstellen, was Sie erreichen möchten? –

Antwort

7

Wenn das eine horizontale RecyclerView, fügen Sie ein ItemDecorator es einige haben Abstand zwischen Objekten.

SpaceItemDecorator itemDecorator = new SpacesItemDecorator(16) 
mList.addItemDecoration(itemDecorator); 

Mit einem SpaceItemDecorator diesem ähnlich ist:

public class SpacesItemDecorator extends RecyclerView.ItemDecoration { 

    private final int space; 

    public SpacesItemDecorator(int spaceInPx) { 
     this.space = spaceInPx; 
    } 

    @Override 
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, 
      RecyclerView.State state) { 
     outRect.left = space; 
     outRect.right = space; 
    } 
}