我有:
换句话说,如果我在AC中有10个数字,并且屏幕上只显示5个,那么这些5的y位置将取决于那些5的最大数值。当用户滚动时,当然这5个元素会发生变化,因此项目渲染器中标签的位置会发生变化。
我的问题:
1)如何获取“当前”可见的项目列表? 2)要覆盖哪个事件/方法会帮助我知道列表已滚动/可见项目已更改?
谢谢,
JoãoSaleiro
答案 0 :(得分:6)
getItemIndicesInView():Vector.<int>
返回此DataGroup中可见的项呈示器的索引。
答案 1 :(得分:1)
我用这种方式解决了我的问题:
protected function pagedList_touchInteractionEndHandler(event:TouchInteractionEvent):void
{
var _index:int = (event.currentTarget.scroller.viewport.layout.horizontalScrollPosition / event.currentTarget.scroller.viewport.layout.columnWidth);
}
<s:List id="pagedList" scrollSnappingMode="center" selectionColor="#FFFFFF" downColor="#FFFFFF" focusAlpha="0"
width="100%" height="100%" useVirtualLayout="true"
verticalScrollPolicy="off" horizontalScrollPolicy="on"
pageScrollingEnabled="true"
itemRenderer="myItemRender"
skinClass="skins.PagedListSkin"
touchInteractionStart="pagedList_touchInteractionStartHandler(event)" touchInteractionEnd="pagedList_touchInteractionEndHandler(event)" >
<s:layout>
<s:TileLayout orientation="rows" requestedRowCount="1"
columnWidth="{pagedList.width}" rowHeight="{pagedList.height}"
verticalGap="0" horizontalGap="0" />
</s:layout>
</s:List>
答案 2 :(得分:0)
((list.dataGroup.layout) as VerticalLayout).rowCount
可能正是您所寻找的。 p>