我有一个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>发布于 2009-05-08 22:35:06
如何将项目渲染器编写为容器( Canvas或HBox)并将Button元素放入其中?
发布于 2009-05-15 23:41:44
为按钮制作包含所需间距的自定义外观。您可能需要将其与填充样式相结合,以确保文本或图标不会超出外观。
发布于 2009-07-28 10:07:25
这有点老生常谈,但您也可以在实际HorizontalList对象的columnWidth上撒谎。将其设置为大于实际itemRenderer宽度的值。
https://stackoverflow.com/questions/836730
复制相似问题