В этом уроке вы узнаете, как создавать различные типы кнопок панели инструментов с помощью
сенсорной библиотеки Sencha . Пример приложения, которое вы напишите, состоит из панели и нескольких панелей инструментов. Вы прикрепите первую панель инструментов к верхней части панели, а вторую панель инструментов — к нижней, как показано на рисунке ниже.
Вот задачи, которые вы будете выполнять для создания приложения:
- Создать веб-страницу для размещения приложения
- Напишите функцию Ext.setup
- Создание различных типов кнопок панели инструментов
- Создать обработчик нажатий для кнопок
- Создать и настроить панели инструментов
- Создать панель и закрепить панели инструментов
Настройка приложения Sencha Touch
Чтобы начать, вам нужно создать HTML-страницу для размещения вашего приложения. Эта страница будет ссылаться на библиотеку Sencha Touch и ваши собственные скрипты:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <link rel="stylesheet" href="ext/resources/css/ext-touch-debug.css" type="text/css"/> <script type="text/javascript" src="ext/ext-touch-debug-w-comments.js"> </script> <script type="text/javascript" src="js/toolbar-buttons-1.js"> </script> </head> <body> </body> </html>
Теперь давайте сосредоточимся на файле toolbar-buttons-1.js. Первым шагом должна быть настройка значков и начальных экранов приложения. Вы можете сделать это внутри функции Ext.setup ():
Ext.setup({ tabletStartupScreen: 'tablet_startup.png', phoneStartupScreen: 'phone_startup.png', icon: 'icon.png', glossOnIcon: false });
Ext.setup () — это встроенная функция, которая заботится о настройке вашей страницы, поэтому она отлично смотрится на разных мобильных платформах и устройствах. Он также содержит функцию onReady (), в которой вы будете настраивать объекты приложения.
Создание различных типов кнопок панели инструментов Sencha Touch
В onReady () ваше первое назначение — добавить пару массивов конфигураций кнопок. Эти массивы содержат кнопки для верхней и нижней панелей инструментов:
var buttonsSpecTop = [ { ui: 'back', text: 'Back' }, { xtype: 'spacer' }, { ui: 'forward', text: 'Forward' } ] var buttonsSpecBottom = [ { ui: 'normal', text: 'Normal' }, { ui: 'round', text: 'Round' }, { ui: 'action', text: 'Action' }, { ui: 'confirm', text: 'Confirm' } ]
Обратите внимание на опцию конфигурации пользовательского интерфейса. Эта опция определяет внешний вид кнопки. Если вы изучите значения пользовательского интерфейса в коде и кнопки на скриншоте, вы заметите, как каждое значение пользовательского интерфейса соответствует своему внешнему виду.
Чтобы увидеть кнопки в работе, вы можете создать простую подпрограмму, которая будет обрабатывать события касания:
var tapHandler = function (btn, evt) { alert("Button '" + btn.text + "' tapped."); }
Кнопки и обработчик касаний теперь готовы, и пришло время создавать панели инструментов. Вы можете использовать массив для хранения обеих панелей инструментов:
var dockedItems = [{ xtype: 'toolbar', title: 'Buttons', ui: 'dark', dock: 'top', items: buttonsSpecTop, defaults: { handler: tapHandler } }, { xtype: 'toolbar', ui: 'dark', dock: 'bottom', items: buttonsSpecBottom, defaults: { handler: tapHandler } }]
Обратите внимание, что каждая панель инструментов имеет массив конфигураций кнопок, назначенных параметру элементов, а обработчик нажатий кнопок подключается через параметр конфигурации по умолчанию.
Собираем все вместе
Наконец, вы можете создать панель, которая будет служить основным контейнером для приложения:
new Ext.Panel({ id: 'buttonsPanel', fullscreen: true, dockedItems: dockedItems });
Параметр конфигурации docketItems используется для указания одного или нескольких компонентов, которые будут добавлены на панель в качестве закрепленных элементов. Эти компоненты, обычно панели инструментов и панели вкладок, могут быть пристыкованы к верхней, правой, нижней или левой части панели.
Можно управлять пристыкованными предметами, используя ряд функций. Вы можете использовать функции addDocked () и removeDocked () для добавления или удаления закрепленных элементов, а также onDockedAdd () или onDockedRemove () для выполнения действий после добавления или удаления закрепленных элементов. Метод getDockedItems () возвращает массив подключенных в данный момент компонентов.
Вот полный исходный код:
Ext.setup({ tabletStartupScreen: 'tablet_startup.png', phoneStartupScreen: 'phone_startup.png', icon: 'icon.png', glossOnIcon: false, onReady: function () { var buttonsSpecTop = [ { ui: 'back', text: 'Back' }, { xtype: 'spacer' }, { ui: 'forward', text: 'Forward' } ] var buttonsSpecBottom = [ { ui: 'normal', text: 'Normal' }, { ui: 'round', text: 'Round' }, { ui: 'action', text: 'Action' }, { ui: 'confirm', text: 'Confirm' } ] var tapHandler = function (btn, evt) { alert("Button '" + btn.text + "' tapped."); } var dockedItems = [{ xtype: 'toolbar', title: 'Buttons', ui: 'dark', dock: 'top', items: buttonsSpecTop, defaults: { handler: tapHandler } }, { xtype: 'toolbar', ui: 'dark', dock: 'bottom', items: buttonsSpecBottom, defaults: { handler: tapHandler } }] new Ext.Panel({ id: 'buttonsPanel', fullscreen: true, dockedItems: dockedItems }); } });
Вот оно Я надеюсь, что это руководство поможет вам в ваших проектах Sencha Touch.
Помните, что предоставленная мною информация основана на общедоступной бета-версии Sencha Touch 0.97. Вы должны ожидать увидеть различия с первым выпуском библиотеки.