【问题标题】:Google play store like interface using recycler view使用回收站视图的类似 Google Play 商店的界面
【发布时间】:2015-02-13 05:40:31
【问题描述】:

我的任务是创建一个与 Google Play 商店非常相似的界面。将有一个类别名称,后跟 3 或 4 张卡片(水平),然后是更多按钮。然后再下一个类别。

我已经通过在垂直列表视图中嵌套水平列表视图来实现这一点。

我知道,我可以通过使用带有水平方向的 LinearLayoutManager 的 Recycler 视图来实现这一点。使用它,我将只有一行。

我的问题是如何添加第 2 行、第 3 行? 我应该再次使用嵌套的 Recycler 视图吗? 有更好的选择吗?

【问题讨论】:

    标签: android android-recyclerview


    【解决方案1】:

    不要使用嵌套列表视图(您不能在 Play 商店中水平滚动)。

    考虑以下选项:

    1. 您可以使用简单的 LinearLayoutManager 并制作不同的视图类型。对于 3 张卡片,使用相同权重的 GridLayoutLinearLayout。这里的问题是,您必须考虑适配器中使用的基础数据列表的索引
    2. 为 RecyclerView 编写自己的 LayoutManager
    3. 使用基于 RecyclerView 并提供 Spannable Grid 布局管理器的 TwoWay View,这似乎正是您要找的。​​li>

    【讨论】:

    • 使用 TwoWay 视图,我不认为我可以在每一行之后添加类别名称和更多按钮。不是吗?
    • 为什么不呢?这是一个跨越整个宽度(所有列)的简单 LinearLayout。标签和更多按钮不是两个不同的单元格
    • 我没有得到第三个。我会读到的。但是第一个选项很好,我可以实现它。非常感谢。
    【解决方案2】:

    如果您检查 Google Play 应用的布局,他们不会对水平卡片使用列表视图/回收器视图。我很确定这只是垂直列表视图/回收器视图中的线性布局(水平)。

    如果您坚持对每一行使用水平回收视图,那么嵌套回收视图将是您的最佳选择。您可以指定一个RecycledViewPool,以便所有嵌套的回收器视图共享同一个池,而不是创建自己的池。

    【讨论】:

    • 谢谢 Alex,我认为在回收站视图中使用线性布局会很好。
    • Alex,我认为 Play 商店应用程序不使用 ListView 或 recycler View 用于水平卡片。我还确定他们只是使用具有水平方向的 LinearLayout 并且是的,每张卡的重量相同。我一直致力于在 Recycler View 上嵌套 recycler View ,但我发现性能不足。它也很明显。但我担心的是他们如何管理此类视图的适配器数据?你有什么想法吗?
    • 因为我的想法是,通过这种方法适配器代码的复杂性会急剧增加。但是如果我们使用另一个列表或回收器视图,那么适配器数据处理将是干净的,但性能会有所欠缺。
    • 我在这里也面临同样的问题。 @MahendraChhimwal 感谢您的洞察力:)
    【解决方案3】:

    您可能希望将其作为一个垂直的RecyclerView(主要回收器),并且对于每个部分,您也可以为每个部分添加一个水平的RecyclerView(部分回收器),正如此博客回答提到的那样:

    另外,考虑使用:

    • Bitmaps 的缓存层,用于通过您的其他商店屏幕进行持久访问
    • 类别/部分图像的延迟加载方法
    • 展示新商品前的占位符

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-05
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多