Переключение между каруселью и контейнером
Я создаю представление, которое должно работать в обоих направлениях: в зависимости от того, какую кнопку на панели инструментов вы щелкаете, вы получаете либо два списка в карусели, либо в контейнере 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, а вторая карта представляет собой карусель со списками. Основываясь на нажатие кнопки панели инструментов, вы можете переключить карту в представлении.