gpt4 book ai didi

android - 使用数据列表或使用 RecyclerView 为对象生成 View ?

转载 作者:行者123 更新时间:2023-11-30 01:55:36 25 4
gpt4 key购买 nike

我有一个详细 Activity 。假设我有这个对象要显示给用户。

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

请注意,这只是一个例子来阐明我的观点。真实对象要复杂得多

现在,因为我需要在顶部显示姓名,每个电话号码列表都在其自己的 View 中垂直堆叠,在它们下方我想要其他内容。

这意味着我有两个选择。

<强>1。以编程方式将 View 生成到某些 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

编写采用一个实例并使用三种类型的 viewHolder(一种用于姓名,另一种用于电话号码,第三种用于 somethingElse)的适配器应该不难

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

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

最佳答案

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

最重要的是,您可能已经自己回答了,如果您计划支持 100+ 电话号码,则方法 1 可能会引入性能问题。

方法 2 的代码更简洁。

关于android - 使用数据列表或使用 RecyclerView 为对象生成 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32289513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com