【问题标题】:Replacing lists in codenameone替换代号中的列表
【发布时间】:2019-04-30 14:38:45
【问题描述】:

根据this page,应该避免com.codename1.ui.List。所以我使用Container 作为推荐的替代品,它适用于我的测试数据,包含数十或数百个项目。但是,元素数量没有上限,我敢肯定,我需要一些优化。我不认为,分页对用户有意义,所以我需要能够显示(数万个)项目。

所有项目都显示为容器,每个包含大约十几个标签。每个容器的高度都是相同的,所以我正在考虑最初使用一个空容器并仅在它滚动到时才填充它。为此,我需要知道

  • 如何强制空容器与已填充容器高度相同?
  • 如何查询,需要展示哪些项目?我可以使用ScrollListener,但可能有更简单的方法?
  • (主观)这是一个愚蠢的想法吗?

【问题讨论】:

    标签: java listview user-interface codenameone


    【解决方案1】:

    我认为这是一个错误。列表支持数百万个条目。不幸的是,试图用手指滑动滚动浏览它们是不现实的。这在您有滚动条的桌面上很容易,但在基于触摸的用户界面中却是不可能的。

    想象一下在滚动 10k 个条目时接到一个电话或不小心按下了主页按钮。或者在 reddit 应用程序中经常发生在我身上的一些非常烦人的事情:当你错误地按下他们的徽标时(如果我用力按下手机的一侧可能会发生这种情况)它会跳到顶部。之后尝试再次开始滚动...

    如果这是一个真实案例并且每个项目的高度都相同,那么您可以使用 List 来处理这种极端情况。这正是列表渲染器架构背后的原因。请注意,当您达到 10k 或更高的条目时,它的性能优势开始发挥作用......但我认为 UX 在设备上并不现实。

    【讨论】:

    • 正如我所写,大多数用户会处理几十行,但也有例外,没有限制。恐怕,你是对的,用户体验是更大的问题,所以我需要使用分页和/或过滤,并且不会有很大的列表。
    猜你喜欢
    • 2022-11-29
    • 2022-11-30
    • 2011-05-29
    • 2020-03-06
    • 2020-09-25
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多