Flex: список с (плавной) прокруткой типа VBOX?

У меня есть элемент управления списком, который использует настраиваемый itemRenderer и настраиваемый itemEditor. ItemRenderer / Editor - это элементы управления textarea, содержащие не менее 3 строк текста в каждой.

По умолчанию для элемента управления списком используется прокрутка по элементам, а не по некоторому количеству пикселей, как прокручивается VBOX.

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

Есть предложения?

Я пытался придумать, как написать собственный VBOX, который мог бы действовать как список, но я новичок в гибкости - и я программировал всего год. .... Не совсем уверен, с чего начать.

Спасибо!


person Matt H.    schedule 14.01.2010    source источник


Ответы (3)


Используйте элемент управления Spark List из Flex 4 (доступна бета-версия). Интерфейс «Скроллера» намного более гибкий.

person an0nym0usc0ward    schedule 14.01.2010
comment
(возможно) глупый вопрос ... Если я спроектирую этот компонент на своей машине с помощью Flex 4, можно ли его скомпилировать, а затем включить в более крупный проект Flex 3, который строит наша компания? Я не знаю, как это работает. В противном случае это, к сожалению, не принесет много пользы - person Matt H.; 14.01.2010

Не получил ответа на свой комментарий относительно использования компонента FLex 4 в нашем приложении.

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

Поскольку элемент управления списком не создает экземпляры всех своих элементов одновременно, он не может определить необходимые минимальные и максимальные значения прокрутки на основе общей высоты всех элементов управления. Он может определять эти значения только из КОЛИЧЕСТВА содержащихся в нем элементов управления. Облом :-(

person Matt H.    schedule 15.01.2010

У меня была аналогичная проблема с использованием средства визуализации элементов с текстом и большим пальцем. Решил это, заставив список отображать ВСЕ его элементы перед отображением, заключив список в скроллер и группу и отключив прокрутку внутри самого списка. Убедитесь, что вы не указали высоту списка - пусть это сделает flex.

Мой код: (по какой-то причине мне пришлось заключить скроллер в группу, чтобы он работал)

<s:Group width="100%"  height="100%">
  <s:Scroller width="100%" height="100%" horizontalScrollPolicy="off" id="listScroll">
    <s:Group width="100%" height="100%">
      <s:List dataProvider="{arrData}" itemRenderer="renderers.ListingItemRenderer"
        verticalScrollPolicy="off" click="listingSelected()" width="100%" />
    </s:Group>
  </s:Scroller>
</s:Group>
person Bernd Hansen    schedule 09.12.2014