Переключение между каруселью и контейнером

Я создаю представление, которое должно работать в обоих направлениях: в зависимости от того, какую кнопку на панели инструментов вы щелкаете, вы получаете либо два списка в карусели, либо в контейнере hbox (каждый список занимает 50% ширины).

Как я могу переключить свой взгляд между Контейнером и Каруселью?

Я пытался изменить xtype с карусели на контейнер

Ext.getCmp("myView").xtype='container';

и я попытался установить расширение

Ext.getCmp("myView").extend='Ext.Container';

и, конечно, я попытался объединить их.

2 ответа

Решение

По умолчанию и документированным способом. ты не сможешь это сделать.

Я думаю, что я попробовал это и заметил, что макет не может быть изменен динамически во время выполнения.

это, как говорится, это не невозможно:D. На данный момент у меня есть 2 решения для вас.

1. Довольно традиционным способом воспользуйтесь вкладкой с 2 ​​предметами. 1 элемент с разметкой карусели 1 элемент с разметкой hbox. При таком подходе у вас будет 4 списка.

2. Динамический способ. В вашем текущем представлении установите макет как "подходящий" и просто поместите titleBar/ панель инструментов в качестве дочернего компонента и убедитесь, что он закреплен. внутри этой панели заголовка / панели инструментов поместите 2 кнопки, чтобы изменить представление теперь на классе контроллера, вам нужна функция init, которая добавит "контейнер" с желаемой компоновкой по умолчанию и списком к представлению.

когда пользователь нажимает другую кнопку, вы удаляете все элементы из вида (на закрепленный элемент это не повлияет) и добавляете другой контейнер с желаемой компоновкой и списком.

PS: В настоящее время я понятия не имею, как вы будете синхронизировать полосу прокрутки списка при изменении представления. Я просто знаю, что если это возможно, вам понадобится приложить немало усилий (или вы можете попытаться перебрать с селектором DOM, чтобы получить список как элемент, а затем получить доступ к полосе прокрутки)

Вы можете достичь этого с помощью макета карты в представлении. Одна карта представляет собой Контейнер с макетом hbox, а вторая карта представляет собой карусель со списками. Основываясь на нажатие кнопки панели инструментов, вы можете переключить карту в представлении.

http://docs.sencha.com/touch/2.3.1/

Другие вопросы по тегам