我有一个HorizontalList控件,它使用自定义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>
答案 0 :(得分:1)
如何将项目渲染器编写为容器(Canvas或HBox)并将Button元素放在其中?
答案 1 :(得分:1)
为您的按钮制作一个自定义皮肤,其中包含您需要的间距。您可能需要将其与填充样式结合使用,以确保文本或图标不会超出皮肤。
答案 2 :(得分:0)
这有点像hacky一边,但你也可以对实际的HorizontalList对象的columnWidth撒谎。将其设置为大于实际itemRenderer宽度的值。