1

我有一个 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 行)并向上滚动时,问题就消失了。有没有办法模仿它以编程方式进行的更新?

4

0 回答 0