javascript - 如何处理具有数十个 View 的 ScrollableView?

标签 javascript android titanium

我在 Titanium 中有一个 ScrollableView(仅针对 Android),它必须滚动几十个 View 。每个 View 都是关于一段或两段文本,可能还有一两张图片。

我担心从一开始就填充所有 View 会对 CPU 造成太大压力。因此,我的计划是一次在 ScrollableView 中实际上只有 3 个 View 。

这是我想出的解决方案。 View 编号为 1 到 10。粗体编号的 View 是当前 Activity 的 View 。破折号是占位符。当用户查看第一个 View 时:

1 2 3 - - - - - - -

用户向右滚动。

1 2 3 - - - - - - -

用户再次向右滚动, View 1 被移除。 View 4 现在已按预期添加到 ScrollableView。

- 2 3 4 - - - - - -

等等。

我面临的障碍是,据我所知,无法在现有 View 之前插入 View (如向左滚动 的情况)。

我应该如何实现?

最佳答案

我创建了 a Titanium module , 基于 this GitHub gist ,就是这样做的。

用法是这样的:

var VirtualScroller = require('ui/common/VirtualScroller');

var virtualScroller = VirtualScroller({
    itemCount: 10,
    start: 0,
    getView: function(i) {
        return Titanium.UI.createLabel({
            width: Titanium.UI.FILL,
            height: Titanium.UI.FILL,
            text: "This is item " + (i + 1)
        });
    },
    isInfinite: false
});

window.add(virtualScroller.view);

该模块通过控制具有三个 View 的 ScrollableView 来工作(类似于原始要点)。它支持有限(以上示例)和无限滚动。

我已经发布了详细信息 on my blog , 它可用 at BitBucket .

关于javascript - 如何处理具有数十个 View 的 ScrollableView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11641578/

相关文章:

android - 运行钛安卓应用程序时无法加载 native 库

javascript - 在 React JS 中导入数组函数后无法检索我的电影数据

javascript - 重新排列对象中每隔两个键

android - 服务在后台运行?

titanium - 如何在 Titanium 中为 Android 实现双指缩放

titanium - 在 Titanium 中配置 Blackberry 10 SDK

javascript - 如何强制完全加载 html5 视频?

javascript - SVG block 触摸/鼠标滚轮事件

android - 如何在android上的sqlite中将.sqlite导入数据库

android - 从 Fragment 对象访问 FragmentActivity 中的元素