Flex: как разместить элементы в элементе управления HorizontalList (используя пользовательский ItemRenderer) - PullRequest
1 голос
/ 08 мая 2009

У меня есть элемент управления HorizontalList, который использует пользовательский ItemRenderer для представления каждого элемента в виде кнопки-переключателя. Список позволяет перетаскивать, и я использовал этот метод , чтобы повернуть обратную связь (линию) сброса в вертикальное положение вместо горизонтального, но с помощью кнопок, соединенных вместе, обратная связь сброса довольно тонкая. Я бы хотел как-то расставить кнопки так, чтобы обратная связь была более очевидной.

Я просмотрел свойства и ничего не выделялось. Существуют свойства padding и margin, но их описания говорят, что они влияют на сам элемент управления списком, а не на элементы.

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

Полагаю, я мог бы основать свой ItemRenderer на холсте, чтобы получить запас, но тогда я бы не унаследовал все функции кнопки.

<?xml version="1.0" encoding="utf-8"?>
<mx:Button 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    creationComplete="go();"
    toggle="true"
>
    <mx:Script>
        <![CDATA[
            private var _val:int = -1;
            private function go():void {
                this.label = data.title;
                _val = data.index;
            }

            override protected function clickHandler(event:MouseEvent):void{
                //todo: bubble an event that causes all other
                //buttons in the list to un-toggle

                //now do the default clickHandler 
                super.clickHandler(event);
            }
        ]]>
    </mx:Script>
</mx:Button>

Ответы [ 3 ]

1 голос
/ 16 мая 2009

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

1 голос
/ 09 мая 2009

Как насчет записи средства визуализации элементов в виде контейнера (Canvas или HBox) и размещения элемента Button внутри?

0 голосов
/ 28 июля 2009

Это немного на хакерской стороне, но вы также можете лгать о вашем columnWidth для реального объекта HorizontalList. Установите для него значение, превышающее фактическую ширину itemRenderer.

...