【问题标题】:Large number of TextViews a performance hit? Should I switch to ListView instead of using Scrollview?大量 TextView 会影响性能吗?我应该切换到 ListView 而不是使用 Scrollview 吗?
【发布时间】:2011-06-07 17:45:03
【问题描述】:

所以我有一个屏幕,显示一个像记分卡一样的网格(TableView,其中每个 TableRow 主要是 TextViews),有 8 行和 11 列。

我想再添加大约 10 行,并将其保存在 ScrollView 中。但我想知道是否应该将整个内容切换到 ListView。

因此,假设我的一半网格是“屏幕外”,那么仅使用 ScrollView 是否会对性能(渲染时间、内存使用)产生很大影响?或者我最好还是去 ListView?

基本上我只是不希望它在第一次显示屏幕时(或在滚动期间)出现滞后。

谢谢。

【问题讨论】:

  • 在回答时请记住,我知道 ListView 的性能优势,但我真的想知道它是否会对我的情况产生很大影响。还要记住,我的网格中的行并不完全相同,所以会有一个折衷,我最终可能会得到一些相当复杂的适配器类来管理列表中每一行的显示方式(如果 rowx 然后这样做,如果粗暴然后这样做,等等等等)。
  • ListView 方法的一个问题是我现在拥有的是一个带有一堆 TableRows 的 TableLayout。您无法使用列表视图轻松实现相同的结果(调整单元格大小以使所有列完美对齐)。所以考虑到我在这里想要一些 TableView 功能,也许 ListView 并不合适。

标签: android performance listview scrollview


【解决方案1】:

我会使用 ListView... 很舒服

使用 ListView,您可以轻松管理选定的行。并且使用合适的 Adapter 你也可以写出非常高效的 List。

您可以在Android API Demos 中找到一些示例

【讨论】:

  • @kyp->是的,我以前使用过 ListViews,但实际上在做某些事情时发现它们比预期的要简单一些。例如,如果您希望与其他行稍有不同,则必须在 Adapter.getView 方法等中执行更复杂的逻辑。
【解决方案2】:

使用 ListView 和 ListAdapter,在后台做了很多工作以确保其高效,例如,显示的列表项在滚动时被重用,而不是为每个项目创建一个。

所以是的,我建议将 ListView 与 ListAdapter 一起使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 2017-01-27
    • 2010-09-26
    • 2012-06-05
    • 1970-01-01
    相关资源
    最近更新 更多