Android 快速列表视图

Posted

技术标签:

【中文标题】Android 快速列表视图【英文标题】:Android Fast ListView 【发布时间】:2014-02-06 14:19:34 【问题描述】:

我有一个包含大量项目的列表视图.. 每个项目可能包含两个、三个、四个或五个 TextView.. 不使用可扩展的 ListView.. 哪个更好以及为什么.. 使用 XML 文件作为视图容器,TextViews 的数量等于所需的最大数量(使用 findViewById...)或通过 java 代码添加视图(myLinearLayout.add(new TextView())).. 基本问题是“哪个更适合内存和速度”? 为什么大多数应用程序使用 XML 文件作为视图??

【问题讨论】:

【参考方案1】:

根据您的问题,您说视图初始化有两个选项,哪个更好,所以我们有两个选项。

选项 1 :: 通过 XML 加载视图。

选项 2:: 通过这样做 (myLinearLayout.add(new TextView()))

****Ans :: Option 1 is best.****

因为如果我们使用选项 2,而不是每次滚动列表视图时,它会动态创建 TextView,这肯定会影响列表的性能,并且会消耗更多内存,因为我们为每一行动态创建 TextView。

可以通过使用 XML 进行视图初始化来消除上述限制。使用 ViewHolder 模式为您提供 Listview,这是内存和速度方面的最佳选择,因为在此模式中我们正在重用视图。请查看下面的链接,了解为什么 ViewHolder 模式是最佳选择的更多信息。

http://developer.android.com/training/improving-layouts/smooth-scrolling.html

【讨论】:

您可以并且应该将 ViewHolder 模式用于 xml 或代码布局。此外,当 xml 膨胀时,视图也必须动态创建,不同之处在于您有额外的工作来解析 xml。【参考方案2】:

XML 是在 Android 上创建布局的默认/标准方式。通常我们只在 JAVA 中创建可以动态的布局。如果是静态布局,只需使用 xml 布局,然后使用 view.findViewById(id) 方法检索视图

【讨论】:

以上是关于Android 快速列表视图的主要内容,如果未能解决你的问题,请参考以下文章

从视图表中获取数据时出现 Laravel 错误

SQL 如何查询指定架构中所有表(或视图)的名称

无法将查询另存为视图表

laravel5.2如何创建视图表

Android 快速列表视图

DRF中五大扩展类及视图集的介绍