我尝试将所有可能的样式设置为灰色以外的其他样式,只是为了尝试去除灰色叠加层,如附加图像中的" Hello项目1" 所示列表没有任何效果。我也检查了ListSkin类,并没有任何可以绘制这些内容的鳍。如何摆脱这些叠加?
<s:List id="list" width="100%" height="100%"
dataProvider="{dp}"
focusAlpha="0"
contentBackgroundAlpha="0"
contentBackgroundColor="0xFFFFFF"
selectionColor="0xFFFFFF"
downColor="0xFFFFFF"
borderVisible="false"
>
</s:List>
答案 0 :(得分:1)
我刚刚用同样的事情帮助过一个客户。基本上,您必须扩展LabelItemRemderer类以不绘制矩形。它不会通过样式或颜色显示,您无法更改。
查看此代码(从LabelItemRemderer中的第853行开始):
// Selected and down states have a gradient overlay as well
// as different separators colors/alphas
if (selected || down)
{
var colors:Array = [0x000000, 0x000000 ];
var alphas:Array = [.2, .1];
var ratios:Array = [0, 255];
var matrix:Matrix = new Matrix();
// gradient overlay
matrix.createGradientBox(unscaledWidth, unscaledHeight, Math.PI / 2, 0, 0 );
graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, matrix);
graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
graphics.endFill();
}
您基本上需要某种方法来强制此代码不能运行。您可以通过从头创建自己的itemRenderer来完成此操作。或者你可以扩展LabelItemRenderer,覆盖drawBackground()方法并将所有父drawBackground()代码复制到扩展子代中;减去上面的块。
我喜欢把颜色看作是一种风格或什么。我很想看到一个神奇的属性(或风格),我们可以用来使覆盖完全消失。请将此作为错误记录到the Apache Flex Jira。