将内容设置为 Cardview pre 5.0 的边缘

Set content to edge of Cardview pre 5.0

我使用 v7 支持库中的 CardView 布局作为我应用程序的主要设计模式。如您所料,它在 Lollipop 上效果很好,看起来像这样:

如果我 运行 在 4.4 或更低版本上运行同一个应用程序,卡片中的内容不会像此处所示那样转到边缘:

有没有一种方法可以让内容在所有 Android 版本(而不仅仅是 5.0)的边缘显示?

谢谢

不幸的是,CardView 的创建者没有想出一种有效的方法来创建适用于设备 运行 Lollipop 早期版本的任何布局的圆角。因此,填充只是添加到卡片的内容中。要防止这种填充,请使用此方法:

cardView.setPreventCornerOverlap(false);

但是,如果您这样做,ImageView 的角将绘制在 CardView 的圆角上。这个问题的解决方案是创建一个自定义的 ImageView(或 Drawable,或 Picasso transfromation...)来绘制圆角。检查此 Gist 如何做到这一点。

由于您对带有 header 图片的卡片使用通用布局,因此您可以检查 this library 由同一作者创建的无填充圆角。