为模糊的标题道歉。我想不出更好的方式来用这么几句话来表达它。
基本上,我正在创建一个自定义 ItemRenderer (IR)。IR 在左侧有一个标签,在右侧有一个图标。右侧的图标是动态的(可以是添加或删除图标或什么都没有)。这很好用,让我可以控制它。
现在,问题是当我在移动应用程序中滚动列表时,图标会发生变化。
它应该看起来如何:
通过拖动 Test3 使用手指(或模拟器中的鼠标)滚动后的外观:
如您所见,图标会发生变化,但标签不会发生变化。我的 Spark List 组件上的dragEnabled
、dropEnabled
和dragMoveEnabled
全部设置为 false 。图标选择运行的唯一时间是 on creationComplete
,因此它不可能在某个时候选择不同的图标。我还可以验证数据本身是否是发生此更改后的数据。
这是创建项目的 MXML:
<s:HGroup width="100%" verticalAlign="middle" left="{this.sideSpacing}" right="{this.sideSpacing}" top="{this.sideSpacing}" bottom="{this.sideSpacing}">
<s:Label id="text" width="100%"/>
<s:Image id="actionIcon" buttonMode="true" click="actionIconClick( event );">
<s:filters>
<s:DropShadowFilter alpha=".45" angle="90" distance="3" blurX="3" blurY="3" quality="3"/>
</s:filters>
</s:Image>
</s:HGroup>
<s:Rect width="100%" height="1" bottom="0" alpha=".1">
<s:fill>
<s:SolidColor color="#000000"/>
</s:fill>
</s:Rect>
以及用于选择应显示哪个图标的可能过于详尽的 AS3:
private function creationComplete( e:Event ):void {
if ( this.data.actionIcon != null ) {
this.actionIconType = this.data.actionIcon;
if ( this.data.actionIcon == ACTION_ICON_ADD ) {
this.actionIcon.source = this.addBitmapSource;
}
else if ( this.data.actionIcon == ACTION_ICON_REMOVE ) {
this.actionIcon.source = this.removeBitmapSource;
}
else {
this.actionIcon.source = null;
this.actionIcon.visible = false;
this.actionIcon.includeInLayout = false;
}
}
else {
this.actionIcon.source = null;
this.actionIcon.visible = false;
this.actionIcon.includeInLayout = false;
}
}
什么可能导致此问题?