如何在Sencha Touch中使用自定义gif加载程序列表?

时间:2012-12-19 13:30:35

标签: css sencha-touch gif preloader sencha-architect

在Sencha中使用Ext.dataview.List时,它会在加载数据时自动插入一个不错的加载微调器。这一切都很好,花花公子,但我想知道如何使用自定义加载器.gif

我环顾四周,认为我需要更改loadmask但不是正面因为我是新手。请参阅this link

以下是我的一个列表的代码。我希望能够将建议的代码添加到一个地方,以便所有列表都受到影响并拥有新的微调器。

    {
        xtype: 'list',
        height: '',
        id: 'categoryList',
        itemId: '',
        width: '100%',
        scrollable: false,
        emptyText: '<div class="pdtsListHtml" style="margin-top:30%">Product List Empty</div>',
        itemTpl: [
          '<div ><div class="pdtsListHtml" style="display:inline;">{navigationElementItemName}&nbsp;({navigationElementItemRecordCounts})</div><div style="display:inline;float:right;margin-right:5px;"><img src="resources/image/arrow.png" width="11" height="11"></div></div>'
        ],
        store: 'productListStore',
        allowDeselect: true,
        onItemDisclosure: false
      }

1 个答案:

答案 0 :(得分:3)

这里有一个fiddle,它会显示一个带有使用gif的加载掩码的示例列表。

基本上,您应该定义自己的Ext.LoadMask子类并在列表中使用它:

Ext.define("Test.MyLoadMask", {
    extend: "Ext.LoadMask",
    alias: "widget.myloadmask",
    getTemplate: function() {
        var prefix = Ext.baseCSSPrefix;

        return [
            {
                reference: 'innerElement',
                cls: prefix + 'mask-inner',
                children: [
                    {
                        reference: 'indicatorElement',
                        cls: prefix + 'loading-spinner-outer',
                        children: [
                            { tag: 'img', src: "http://example.com/my-spinner.gif" }
                        ]
                    },
                    {
                        reference: 'messageElement'
                    }
                ]
            }
        ];
    }
});

然后,您应该在列表中定义applyMasked,修改xtype并将其设置为myloadmask而不是loadmask