2016-02-01 120 views
6

我想添加圓角和填充到我的卡片視圖,角落半徑似乎沒有工作時,我有內容填充。CardView填充和圓角

這是我目前的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> 

如果我刪除內容填充,那麼圓角半徑的作品,但我需要兩者。

任何人有任何想法?我知道我可以將cardUseCompatPadding設置爲true,但是隨後整個卡片都會出現填充文字視圖。

編輯:

這裏的設計我現在有,什麼我複製:

enter image description here

+1

使用的保證金,而不是填充,看看這個答案:http://stackoverflow.com/a/34581086 –

+0

我已經試過了太不幸了,並且由於某種原因實際上沒有保證金。 – user3746428

+0

你是否有一個用戶界面,你可以把你想要實現的屏幕截圖放在一起嗎? –

回答

7

如果這是一個水平RecyclerView,添加ItemDecorator它有一些對象之間的間距。

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

隨着SpaceItemDecorator與此類似:

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; 
    } 
}