Установить интерфейс по умолчанию для всех компонентов в Sencha Touch - PullRequest
2 голосов
/ 21 ноября 2011

Можно ли в Sencha Touch определить пользовательский интерфейс по умолчанию, например, «светлый» или «темный», который применяется ко всем компонентам (если не перезаписан явно)?

Цель состоит в том, чтобы не объявлять ui: "dark" или любой пользовательский интерфейс, созданный для каждого элемента.

ура!

Ответы [ 3 ]

2 голосов
/ 21 ноября 2011

Вы можете попробовать это:

Ext.apply(Ext.Component.prototype, {
    getUi: function() {
        var defaultUi = 'light';
        // value of [this.config.ui] is ignored here
        // we can use something like forcedUi
        return (this.forcedUi) ? this.forcedUi : defaultUi;
    }
})

Недостатком этого кода является то, что нам нужно указать другую переменную для применения пользовательского интерфейса, отличную от 'light' (потому что переменная 'ui' через getUi () всегда будетвернуть 'свет'):

...
items: [{
    xtype: 'button',
    forcedUi: 'dark'
}]
...
1 голос
/ 25 июня 2012

Я застрял на Touch 1.1, поэтому решение SunSay не работает для меня, но это сработало:

Ext.CustomToolbar = Ext.extend(Ext.Toolbar, 
{
    ui:'app'
});
Ext.reg('toolbar', Ext.CustomToolbar);

Таким образом, оно все еще компонент за компонентом, но не компонент за компонентомкомпонент-экземпляр.А так как вы можете перезаписать "reg", вам также не понадобятся пользовательские x-типы повсюду.

0 голосов
/ 21 ноября 2011

Я предполагаю, что вы знаете о стилях и темах сенсорного экрана sencha. В противном случае вы можете скачать PDF-файл по этой ссылке, в которой четко описано, как это сделать ...

http://f.cl.ly/items/d9df79f57b67e6e876c6/SenchaTouchThemes.pdf

В нем упоминается о файле scss, где вы можете указать базовый цвет, т.е.

$ основной цвет: # 4bb8f0; $ базовый градиент: 'глянцевый';

Затем запустите его ... вы увидите панели инструментов и кнопки, созданные с указанным вами цветом и градиентом.

...