我有一个特殊情况,我需要在CardView中显示一个项目列表(或者一个与CardView非常相似的视图)。
该功能运行良好,但我遇到了一些关于UI的不一致:
- 在API轰鸣声21上,CardView显示为空(我想这是由于CardView小部件如何设置它的填充以便它可以绘制它的阴影 - 模拟高程) - >我通过根据适配器状态显示或隐藏整个视图来解决这个问题,如果我有数据
- 角落未正确显示且UI在所有API级别上不一致
- 对于RecyclerView项目的删除操作,动画有点奇怪。首先调整RecyclerView的高度,然后将下一行设置为已移除的行视图的位置。
另外,我不能依赖CardView内容填充,因为我有与卡片视图宽度匹配的分隔符。
有没有人遇到过类似的情况,并为此找到了解决办法?
提前感谢您提供有关如何实现此目的的任何帮助或提示。
LE:我已经在API 22和API 16上添加了ScreenShots的样子。
API 16:
API 22:
CardView内部的RecyclerView上方的CardView是一个简单的CardView,只有TextView作为其内容。
正如您所看到的,简单的CardView与API级别之间存在差异。
SOLUTION:
我已经确定了问题,并分两步修复:
- 错误的边距和角落是由于在行视图中有些过度绘制
布局。我完全从行视图中删除了背景
仅将背景留在RecyclerView的父CardView上
支架
- 当没有数据可用时显示RecyclerView的空CardView持有者我通过在RecyclerView的适配器上添加数据观察器来修复我总是根据我需要显示的项目数量更新CardView持有者的可见性(空的时候我用它的CardView持有者完全隐藏了列表)。