【问题标题】:How to maintain equal size of cardview items in a recyclerview without hard coding the size?如何在不硬编码大小的情况下在回收站视图中保持相同大小的卡片视图项目?
【发布时间】:2018-07-08 18:06:28
【问题描述】:

Image of list I wish to replicate.

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

【问题讨论】:

  • 您将什么定义为“统一”尺寸?使用dp size 是最安全的选择 - UI 可能需要在小屏幕设备上进行更多滚动,但它应该保持可读性。不建议对任何带有文本的内容使用屏幕百分比尺寸,因为它可能在较小的屏幕上变得难以辨认,而在平板电脑等上变得过大(并拉伸小图像)。

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


【解决方案1】:

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

这是最适合您要求的解决方案。为此,您可以制作一个尺寸。

<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 库工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 2023-02-03
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多