【问题标题】:Generating views for object with lists of data or using RecyclerView?使用数据列表或使用 RecyclerView 为对象生成视图?
【发布时间】:2015-11-24 04:55:24
【问题描述】:

我有一个详细活动。假设我有这个对象要展示给用户。

public class Dummy {
    private String name;        
    private ArrayList<String> telephoneNumbers;
    private String somethingElse;
}

请注意,这只是说明我观点的一个例子。实物要复杂得多

现在,因为我需要在顶部有名字,电话号码列表在它自己的视图中垂直堆叠,在它们下面我想要其他的东西。

这意味着我有两个选择。

1.以编程方式将视图生成到某个 ViewGroup 中

<LinearLayout orientation="vertical">
    <name />
    <LinearLayout orientation="vertical">
        Here I will programmatically generate one view per telephone number
    </LinearLayout>
   <somethingElse />
</LinearLayout>

这种方法非常简单。但缺点是当我将拥有 100 个电话号码时 - 由于 100 个可能复杂的布局、100 个点击侦听器或我会在这里做的任何事情,性能会降低。

(还有一个问题——这可能与Android Data binding有关吗?)

2。使用 RecyclerView 处理整个事情

编写一个接受一个实例并使用三种类型的viewHolders(一种用于名称,另一种用于电话号码,第三种用于其他类型)的适配器应该不难

ItemCount 将是 phoneNumbers.size() + 2。 然后剩下要做的就是对每个适配器位置进行一些计算,以创建适当的 viewHolder 并将数据绑定到它。

你们认为最好的方法是什么?

【问题讨论】:

    标签: android data-binding view android-recyclerview auto-generate


    【解决方案1】:

    我觉得你应该用方法2,首先,类似的事情我已经做过了,如果你能做到方法1,你实现方法2就不难了。

    最重要的是,你可能已经自己回答了,如果你打算支持说 100+ 电话号码,那么方法 1 可能会引入性能问题。

    而且方法 2 的代码更简洁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多