我有一个 UIComponent,它在顶部有一个 datagrid 的子类,在底部有一个按钮“removeValues”。
当单击 removeValues 按钮时,我调用resetDataProvider
了数据网格,它将数据提供程序设置为先前数据提供程序中值数量的一半左右,并在值小于/等于 6 时将数据网格的大小调整为 x 行数。
调整大小后,当我将鼠标悬停在组件底部时,我注意到了一个奇怪的问题。当我将鼠标悬停在 UIComponent 的底部(看起来像空白区域)时,网格中剩余的一行会突出显示(好像我已经将鼠标悬停在它上面)。
我在数据网格上监听 mouseOver 事件,果然,它认为它悬停在我的一个数据网格行的项目渲染器上。
我已经尝试过 invalidateList()、validateNow()、invalidateDisplayList(),但似乎没有任何东西可以正确更新它。有人对我可以尝试什么有任何想法吗?
public function resetDataProvider(value:XMLList):void
{
dataProvider = value;
if(value.length() <= DEFAULT_ROW_COUNT)
{
this.rowCount = value.length();
height = measureHeightOfItems(-1, rowCount+1) + viewMetrics.top + viewMetrics.bottom;
}
invalidateList();
validateNow()
}
编辑:
只是对此的更新:当我向下滚动网格(超过 6 行)并向上滚动时,问题就消失了。有没有办法模仿它以编程方式进行的更新?