CardView 填充和圆角
CardView padding and rounded corners
我正在尝试向我的卡片视图添加圆角和填充,当我有内容填充时,圆角半径似乎不起作用。
这是我现在的 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,但是整个卡片都有填充,这会扰乱文本视图。
编辑:
这是我目前的设计,以及我正在复制的设计:
如果这是水平的 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;
}
}
我正在尝试向我的卡片视图添加圆角和填充,当我有内容填充时,圆角半径似乎不起作用。
这是我现在的 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,但是整个卡片都有填充,这会扰乱文本视图。
编辑:
这是我目前的设计,以及我正在复制的设计:
如果这是水平的 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;
}
}