我试图实现以下目的:创建宽度设置为100%的LinkBar,并在左侧放置4个LinkButtons,并将第5个按钮放在右侧。起初,我试图将2个LinkBar控件放在HBox中,但是,这似乎破坏了flex应用程序并导致了一个空白屏幕。然后我尝试在链接栏的dataProvider属性中放置一个mx:Spacer,但它也不起作用,spacer只跨越大约1个字符宽,并没有将第5个按钮一直向右推。请帮助,谢谢。
答案 0 :(得分:2)
你需要为此修补课程。 LinkBar本质上是一个水平框,可以在其子代之间自动添加间隔对象。查看updateDisplayList方法 - 请注意,使用以下代码设置分隔符的大小:
if (isVertical())
{
...
separator.setActualSize(separatorWidth, verticalGap);
...
}
else
{
...
separator.setActualSize(horizontalGap, separatorHeight);
...
}
您需要以某种方式更改此行为。我的建议是检测这是否是对象中的最后一个spacer(通过将循环迭代器“i”与子列表中的对象“n”的总数进行比较),如果是,则将其宽度设置为100%或同一事物的明确计算版本。
似乎猴子修补类是实现此更改的最佳选择,因为任何尝试更改实际类之外的间隔符的大小(例如,在派生类中)都可能最终调用此方法方法和强制重置大小。
有关如何修补课程的更多信息,请观看this short presentation by Doug McCune,或查看this post by Jesse Warden他使用猴子补丁更新Flex光标功能的地方。