Как использовать swtich темы extjs?

Я заметил, что extjs поставляется с 3 по 4 темы/скины по умолчанию. Как выбрать или swtich между темами?

Я хочу изменить синий цвет, чтобы выбрать серые темы или что-то еще.

Спасибо

Ответы

Ответ 1

Функция Ext.util.CSS.swapStyleSheet может использоваться для переключения между различными темами, this форумы показывают пример.

Кроме того, я реализовал это сначала в своем приложении некоторое время назад, но в конечном итоге я обнаружил, что принудительное обновление браузера было необходимо вместо динамической замены CSS, так как все еще были бы какие-то странные проблемы с размером и позиционированием. Это было главным образом при переключении между темой доступности.

Ответ 2

Хотя Ext.util.CSS.swapStyleSheet будет работать, он имеет несколько недостатков:

1. Для отображения страницы с новой темой CSS требуется больше времени.
2. При переключении между темами ваша страница будет отсутствовать из какого-либо css. Это сделает страницу плохой (сломанной и простой).
3. Ненужные полосы прокрутки появятся на экране.

Я преодолел их с помощью JavaScript:

Здесь

  • Включите все файлы CSS в ваш HTML файл.

    <link rel="stylesheet" id="theme1" type="text/css" href="../Theme1.css" />
    <link rel="stylesheet" id="theme2" type="text/css" href="../Theme2.css" />
    
  • Отключить все темы, кроме тех, которые вы хотите по умолчанию.

    document.getElementById('theme1').disabled = true;
    document.getElementById('theme2').disabled = false;
    

    Теперь страница будет загружена "theme2".

  • Если вы хотите переключить тему. Сделайте что-то противоположное выше...

    document.getElementById('theme1').disabled = false;
    document.getElementById('theme2').disabled = true;
    

Таким образом, переключение будет очень быстрым. Поскольку мы сначала загрузили все файлы css. Он не будет запрашивать сервер для новой темы каждый раз.

Это сработало для меня хорошо.