以编程方式添加视图与使用 recyclerView 之间有什么区别?

What will be the difference between adding the view programmatically vs using recyclerView?

有一个 canvas 作为初学者,我在 android 中了解了 viewGroup 以及如何添加一个 view 或多个 viewsviewGroup 中使用 xml 或以编程方式使用 addView。我们可以添加任意数量的 view,我们也可以使用 layoutParams 动态增加 viewheight。虽然我们可以使用 addViewsetLayoutParams 来增加 canvas 的高度,因为我们添加更多 pages,但为什么要使用 recyclerView

UI的角度来看,无论我们说increasing heightadding viewlist of items,这里的一切似乎都是平等的。即使当我们是 increasing the height 时,每次添加之间也有一个分隔符。但是,分隔符在这里不是主要问题。基本上,根据 pagesitemsdata 的数量,我们是 canvas 视图的 increasing the height,因此我们可以包含并显示所有 data。这些 pages 的数量目前已设置为 14 但可以无限制地增加,每个 canvas board 可以包含不可预测的数据量 - 可能是数百个点,组合线条、形状、文本、图像等等——这是公平的。我们不限制用户只能在个人 canvas board.

上绘制一定数量的东西

RecyclerView 是一个强大的工具,可以有效地显示大量数据,具有缓存和显示动画项目等多种功能。 使用 RecyclerView RecyclerView 和 addView() 之间没有什么可比较的,因为它们的用法不同。 但是我建议你阅读这篇关于 RecyclerView 是如何工作的文章。

How Does RecyclerView Works

While we can use addView or setLayoutParams to increase the height of the canvas as we add more pages, why should we use recyclerView?

因为 RecyclerView 对大数据集更有效率。

From the UI perspective, everything seems equal here whether we say increasing height or adding view or list of items.

不,不是。如果您向 ViewGroup 添加 1000 个项目,它会尝试绘制 1000 个项目,最好的情况下将您的应用拖到爬行状态,最坏的情况是崩溃。

如果您将 1000 个项目添加到 RecyclerView 它会绘制,但是很多都适合屏幕。

These numbers of pages has been set to 14 currently but it can be increased without any limit

不真实。总是有一个限制。它可能很大,但总是有限制。在这种情况下,限制在 RAM 上(设备在崩溃之前可以在内存中保存多少数据)。