我有一个组件,其中包含一个实现自定义渲染器的列表。我将此组件用作工具提示,将其保留在内存中,并根据需要更改数据绑定。
像这样的东西,其中 TTComponent 是一个扩展 Canvas 的类:
<s:TTComponent>
<s:BorderContainer>
<s:List id='lstItems' dataProvider="{data.Items}" width="50%" borderVisible="false" contentBackgroundColor="#222222">
<s:layout>
<s:VerticalLayout useVirtualLayout="false" requestedMinRowCount="1"/>
</s:layout>
<s:itemRenderer>
<fx:Component>
<s:ItemRenderer>
<s:HGroup>
<s:Label text="{data.Value}" paddingLeft="6" />
<s:Label text="{data.Name}" />
</s:HGroup>
</s:ItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:List>
</s:BorderContainer>
</s:TTComponent>
现在,鼠标悬停的驱动程序代码如下所示:
if (tt == null) {
tt = new TTComponent();
}
tt.data = data;
PopUpManager.addPopUp(tt, this);
而且,当然,鼠标退出:
PopUpManager.removePopUp(tt);
现在,当包含许多项目的数据设置为 tt.data 时,会发生什么情况,该列表会自行调整大小并正常显示。但是,在此之后,如果将包含少量项目的数据设置为 tt.data,则组件会暂时显示大于所需大小,然后将自身调整为更小。
我想做的是让组件在显示之前自行调整大小,所以我看不到屏幕上的调整大小。关于如何做到这一点的任何想法?