2

ScrollableView数十のビューをスクロールする必要があるTitanium (Android のみを対象) があります。各ビューは 1 つか 2 つのテキストの段落で、画像が 1 つまたは 2 つ含まれています。

最初からすべてのビューを設定するには、CPU に負荷がかかりすぎるのではないかと心配しています。したがって、私の計画では、実際には ScrollableView に一度に 3 つのビューしか持たないようにしていました。

これが私が思いついた解決策です。ビューには 1 ~ 10 の番号が付けられています。太字の番号の付いたビューは、現在アクティブなビューです。ダッシュはプレースホルダーです。ユーザーが最初のビューを表示すると:

1 2 3 - - - - - - -

ユーザーは右にスクロールします。

1 2 3 - - - - - - -

ユーザーが再び右にスクロールすると、ビュー 1 が削除されます。View 4 が見越して ScrollableView に追加されました。

- 2 3 4 - - - - - -

等々。

私がこれに直面している障害は、私が知る限り、既存のビューの前にビューを挿入する方法がないことです (にスクロールする場合のように)。

これをどのように実装すればよいですか?

4

2 に答える 2

2

この GitHub gistに基づいて、まさにこれを行う Titanium モジュールを作成しました。

使用法は次のようになります。

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);

このモジュールは、ScrollableView を 3 つのビュー (元の要点のように) で制御することによって機能します。有限 (上記の例) および無限スクロールをサポートします。

詳細はブログに投稿しており、BitBucket で入手できます。

于 2012-07-27T16:39:09.493 に答える
-1

ListView を使用することをお勧めします。仕切りがないように構成できます。内部でスクロールを処理するため、ScrollView ラッパーは必要ありません。また、現在のスクロール位置に表示されているものだけをメモリに格納する必要があるように、コンテンツの読み込みも管理します。

于 2012-07-25T01:51:41.577 に答える