Extjs макет аккордеона - PullRequest
       27

Extjs макет аккордеона

4 голосов
/ 04 января 2011

Аккордеонный макет - это макет сгруппированных панелей, в котором только одна панель видна одновременно, но я хотел показать две панели, видимые одновременно, поэтому мы можем сделать это с панелью аккордеона ??

Ответы [ 4 ]

4 голосов
/ 15 марта 2011

Вы не можете расширить существующий класс Accordion Layout для достижения того, что вы ищете. Если вы просмотрите исходный код, вы заметите, что макет Accordion создается путем расширения FitLayout. Теперь я процитирую свойство FitLayout, описанное в документации:

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

В документации также сказано:

Если контейнер имеет несколько панелей, будет отображаться только первый.

Теперь спрашивающий спрашивает, чтобы отображались две панели одновременно. Что просто невозможно с любым макетом, выходящим из FitLayout.

Другие вопросы:

Есть некоторые проблемы проектирования с компонентом, который планирующий внедрить;

  1. Как насчет места, которое займут отображаемые в данный момент панели?
  2. Как будет работать поведение аккордеона? Когда пользователь пытается получить доступ к третьей панели ... как ведут себя открытые в данный момент панели.

Возможное решение:

Теперь одно из возможных решений - расширить Panel с помощью макета vbox и включить в нее все панели.

2 голосов
/ 06 сентября 2012

Это возможно в Ext js 4.1 с помощью свойства multi макета Accordion.

Проверьте документы здесь ..

0 голосов
/ 18 марта 2011

Аккордеонная раскладка не предназначена для этого. Выбор соответствующего макета для вашего требования подобен попытке поместить сферу в прямоугольник.

Однако, если вы положите пистолет на мою голову, я быстро подумаю над следующими вариантами.

  1. Расширить существующий класс Accordion ( Discard. Поскольку база не предназначена для этого )
  2. Напишите свой собственный волшебный Аккордеон ( Помимо реализации, вы должны ответить на упомянутые проблемы Абдель Олакара, ваше собственное )
  3. Подражайте желаемому поведению, складывая два или более Аккордеона ( Ну, не очень хорошая идея, но пистолет у меня на голове ).
0 голосов
/ 09 февраля 2011

Я уверен, что вы не можете сделать это с существующим AccordionLayout.

Вы можете написать свой собственный класс макета, чтобы сделать это. Это не так сложно, AccordionLayout.js всего несколько страниц, и большинство из них являются комментариями.

...