我有一个树组件坐在一个分开的盒子里。如果调整分割框的大小,我想在节点标签上显示“...”。我有一个自定义itemrenderer,并一直在查看labelFunction属性以及在自定义itemrenderer中尝试各种方法。没有任何快乐。 任何指针都会受到赞赏。
下面是我设置它的一些示例代码...
我定义了一个树......
<mx:Tree
id="tree"
dataProvider="myData"
labelFunction="treeNodeLabel"
width="100%" height="100%"
click="handleClick(event)"
mouseMove="handleMouseMove(event)"
itemRollOver="handleItemOver(event)"
itemRollOut="handleItemOut(event)"
doubleClickEnabled="true"
doubleClick="handleDoubleClick(event)"
iconFunction="customIcon"
dragEnabled="true"
dropEnabled="true"
dragMoveEnabled="true"
dragOver="onDragOver(event)"
dragStart="onDragStart(event)"
dataDescriptor="{new DiagramTreeDataDescriptor()}"
itemRenderer="myCustomeRenderer"
borderStyle="none"
>
Custom Renderer是一个ActionScript类,它扩展了TreeItemRenderer ...
public class myCustomRenderer extends TreeItemRenderer {
public function myCustomRenderer() {
super();
}
/**
* Create child objects of the component.
*/
override protected function createChildren():void {
super.createChildren();
createIcon();
addListeners();
addChild(Icon1);
addChild(Icon2);
}
private function createIcon() : void {
...
}
private function addListeners() : void {
...
}
private function Icon1Click(event: MouseEvent):void {
...
}
private function Icon2Click(event: MouseEvent): void {
...
}
private function onLabelMouseOver(event : MouseEvent):void {
...
}
private function onLabelMouseOut(event : MouseEvent):void {
...
}
private function getDescription(node : XML):String {
...
}
override protected function updateDisplayList(...) {
...
}
override public function set listData(value:BaseListData):void {
...
}
}
答案 0 :(得分:0)
您可以设置
labelDisplay.maxDisplayedLines = 1
另外,为了能够截断,labelDisplay必须具有指定的宽度。我不知道渲染器中的默认行为是什么。您可以尝试首先在渲染器本身上设置宽度(绝对值或百分比)。如果它不起作用,请在labelDisplay上设置它。