【发布时间】: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