CardView填充和圆角

时间:2016-02-01 00:27:33

标签: android xml android-layout android-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 个答案:

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