Flex:如何在Horizo​​ntalList控件中分隔项目(使用自定义ItemRenderer)

时间:2009-05-07 20:02:47

标签: flex actionscript-3 flex3

我有一个Horizo​​ntalList控件,它使用自定义ItemRenderer将每个项目表示为切换按钮。该列表允许拖放,我使用this method将下降反馈(线)旋转到垂直位置而不是水平位置,但是当按钮混合在一起时,拖放反馈非常微妙。我想以某种方式将按钮分开,这样下拉反馈就更明显了。

我查看了这些属性并没有突出显示。有填充和边距属性,但是它们的描述说它们会影响列表控件本身,而不是项目。

以下是我的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 个答案:

答案 0 :(得分:1)

如何将项目渲染器编写为容器(Canvas或HBox)并将Button元素放在其中?

答案 1 :(得分:1)

为您的按钮制作一个自定义皮肤,其中包含您需要的间距。您可能需要将其与填充样式结合使用,以确保文本或图标不会超出皮肤。

答案 2 :(得分:0)

这有点像hacky一边,但你也可以对实际的Horizo​​ntalList对象的columnWidth撒谎。将其设置为大于实际itemRenderer宽度的值。