2016-02-01 16 views
6

Próbuję dodać zaokrąglone rogi i dopełnienie do widoków mojej karty, promień narożnika nie działa, gdy mam dopełnienie zawartości.Podszewka CardView i zaokrąglone rogi

To jest mój obecny 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> 

Jeśli usunąć dopełnienie treści, a następnie promień rogu działa, ale muszę obu.

Ktoś ma jakieś pomysły? Wiem, że mogę ustawić cardUseCompatPadding na true, ale wtedy cała karta ma dopełnienie, które zakłóca widok tekstu.

EDIT:

Oto konstrukcja Obecnie mam, a co mam replikacji:

enter image description here

+1

Korzystanie z marginesu zamiast obicia, przyjrzeć się tej odpowiedzi: http://stackoverflow.com/a/34581086 –

+0

próbowałem że zbyt niestety, a z jakiegoś powodu nie dodaje się marży. – user3746428

+0

Czy masz na myśli interfejs użytkownika, czy możesz złożyć zrzut ekranu z tego, co chcesz osiągnąć? –

Odpowiedz

7

Jeśli to poziomą RecyclerView dodaj ItemDecorator do niego mieć jakiś odstępy między obiektami.

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

Z SpaceItemDecorator podobny do tego:

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; 
    } 
} 
Powiązane problemy