如何在没有硬编码大小的情况下在recyclerview中保持cardview项的大小相等?

时间:2018-07-08 18:06:28

标签: android android-recyclerview responsive-design grid-layout android-cardview

Image of list I wish to replicate.

我正在设计一个应用程序,该应用程序显示的列表类似于图像中显示的列表。实际上,我将实现3种彼此垂直堆叠的同类列表(每行代表3个不同的API调用的输出,因此基本上我有3个不同的水平回收器视图)。我的问题是如何在一行和三行中保持一致的宽度和高度。来自3个来源的API响应(映射到3行)返回每行不同大小的图像。硬编码尺寸是唯一的解决方案吗?如果是,如何在不同的屏幕尺寸上保持尺寸?

1 个答案:

答案 0 :(得分:0)

  

硬编码尺寸是唯一的解决方案吗?

这是最适合您要求的解决方案。为此,你可以做个小点心。

<dimen name="card_size">100dp</dimen>

并在每个项目布局中提供卡片大小。

<CardView
   android:layout_width="@dimen/card_size"
   android:layout_height="@dimen/card_size"
   />
  

如何在不同的屏幕尺寸上保持尺寸?

现在第二件事是为不同的屏幕设置感应卡大小。

为此,您有两个选择。

  1. (长期使用的方法)在每个屏幕值文件夹中放入dimencard_size。参见this link
  2. (短方法)我更喜欢这种方法。

在这种情况下,您将使用sdp库,而仅使用100sdp而不是100dp

请参阅sdp库工作。

enter image description here