0

我有两个问题,其中第二个只是一个问题,因为它是解决第一个问题的可能方法!

我正在使用 Spark 主题开发 Flex 4.1 应用程序:我无法更改这些;光环不是一种选择。

它提供了一种工具,可以从单个按键中用单个字符填充 AdvancedDataGrid 的多个选定单元格。因此,用户使用 Shift 键选择他们的单元格,点击 H(例如)并看到所有单元格都使用 H 更新,而不使用 itemEditor 而是通过网格 keyDown 事件。然后他们点击其他地方,选择应该清除。

然而,可见的选择并没有完全清除,新颜色的单元格不会全部改变它们选择的颜色。

下面我可以验证选择是否已清除:mygrid.selectedCells 为空。之后的所有行为都指向网格的某种显示故障:单元格不再被选中,但它们看起来像它们一样。

在选定单元格上按下按键后:

替代文字

鼠标点击后清除选择:

替代文字

注意交替的列:这总是发生的方式。

这是使用默认的 itemRenderer。一个非常基本的自定义 itemRenderer 仍然会发生这种情况,但我没有进一步研究这条途径,因为我无法在 itemRenderer 中获取标签以识别 backgroundAlpha,因此“选定”背景几乎不可见并且看起来很糟糕。我在某处读到这是 Spark 的一个问题,如果我切换回默认渲染器,一切都很好。嗯......除了这个选择颜色故障。

以下是自定义渲染器的外观:

替代文字

如果我遗漏了一些明显的东西,这是我尝试过的 itemRenderer:

<?xml version="1.0" encoding="utf-8"?>
<s:MXAdvancedDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                          xmlns:s="library://ns.adobe.com/flex/spark" 
                          xmlns:mx="library://ns.adobe.com/flex/mx" 
                          focusEnabled="true" autoDrawBackground="true"
                          >
    <s:layout>
        <s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/>
    </s:layout>
    <s:Label id="lblData" text="{listData.label}" backgroundAlpha="0"/>
</s:MXAdvancedDataGridItemRenderer>

总而言之:我需要的是一种修复多选故障的方法;如果我需要自定义 itemRenderer 来修复选择故障,则项目渲染器问题只是一个问题。

感激地收到任何帮助。

4

1 回答 1

2

这似乎是由 Flashplayer 10.1 引起的。您可以在此处找到详细信息:

ADG选择错误

评论中还发布了一种解决方法。

于 2010-12-13T21:25:53.183 回答