1

コンテナにリスト(アイテムを含む)を動的に追加しようとしています。単純なHTMLテンプレートの代わりに、タイトルバー、画像、その他いくつかのものを含むパネルを含むリストアイテムが必要です。

これを行うために、ストアデータをロードし、そのコールバック内でアイテムのリストと配列を作成しています。次に、アイテムをリストに追加し、リストをコンテナーに追加しますが、最終結果は、すべてのパネルのスライドリストではなく、最後のパネルだけが表示されます。

これが私のコードです:

    var vLists = [];
    this.load({
        callback: function(records, operation, success) {
            var hccontainer = Ext.getCmp('hccontainer');
            this.each(function(record){
                var sid = 'styleStore'+record.get('id');
                var styleTemplate = eval('tpls.styleTemplate_' + record.get('id'));
                vLists.push({
                    xtype: 'panel',
                    scrollable: 'false',
                    layout: 'fit',
                    cid : record.get('id'),
                    ctype : record.get('type'),
                    cname : record.get('name'),
                    stid : sid,
                    tp : styleTemplate,
                    items: [
                        {
                            xtype : 'titlebar',
                            title : record.get('name'),
                            docked : 'top',
                            cls : 'x-toolbar-transparent-top'
                        },
                        {
                            xtype : 'image',
                            src : record.get('image'),
                        }
                    ]
                });
            });
            //hccontainer.remove(Ext.getCmp('hc'), true);
            Ext.getCmp('hc').destroy();
            var hc1 = Ext.create('Ext.dataview.List', {
                layout : 'fit',
                config: {
                    direction: 'horizontal',
                    id : 'hc'
                }
            });
            hc1.setItems(vLists);
            Ext.getCmp('hccontainer').add(hc1);
        },
        scope: this
    });

これはアイテムを追加する正しい方法ですか、それとも何かが足りません。

PSカルーセルを使用する場合、リストの代わりにこれは正常に機能します

4

1 に答える 1

1

カルーセルは、リストよりもレイアウトコンポーネントです。リストを使用する必要があるようには見えません。たとえば、アイテムタップのハンドラーは表示されません。テンプレートの使用を避けたい場合は、リストを使用しないでください。代わりに、リストのようなレイアウトでコンポーネントを作成するだけです。私は、vboxレイアウトで、水平方向にスクラッチされ、静的な高さのコンテナーを使用します。次に、必要なアイテム構成をこれに入れることができます。

于 2012-12-07T01:10:07.887 に答える