我有两个问题,其中第二个只是一个问题,因为它是解决第一个问题的可能方法!
我正在使用 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 来修复选择故障,则项目渲染器问题只是一个问题。
感激地收到任何帮助。