2012-03-19 69 views
0

我有一個具有以下屬性的火花列表:的Flex 4.6手機 - 如何知道哪個的itemRenderer可見

verticalScrollPolicy="off" 
    horizontalScrollPolicy="on" 
    pageScrollingEnabled="true" 
    scrollSnappingMode="leadingEdge" 

和內部是一個itemRenderer要佔用一個全屏幕的每個項目。所以基本上它是一個水平列表,可以讓您一次向左和向右滑動一頁。請注意scrollSnappingMode已打開,因此頁面始終完美地貼在頁面上。

另外,我在佈局上設置了「useVirtualLayout = true」,所以我有虛擬的ItemRenderer被回收。

我的問題是:我怎麼知道哪個ItemRenderer目前在屏幕上?是否有需要觀看的事件或屬性讓我知道此頁面是否已捕捉到視圖中並且是當前可見的頁面?

回答

0

我怎麼知道哪個ItemRenderer當前在屏幕上?

在你描述的情況下,它使用虛擬佈局並且一次只在屏幕上顯示一個元素;只會有一個itemRenderer。

您可以使用itemRenderer上的data屬性來訪問itemRenderer的dataProvider元素。

您可以使用itemRenderer上的itemIndex屬性在dataProvider中找到您的數據索引。

如果您想知道列表何時從包含列表的組件更改;你可以嘗試聽更改事件;但我不確定這是否會讓你想要你的需要;因爲可以在不選擇新項目的情況下進行滾動。

+0

這不完全正確,一次肯定有多個ItemRenderer。如果我只是在不改變頁面的情況下向任一方向輕掃一下,我可以並排看到兩個項目。所以一次至少有兩個渲染器,但我認爲更可能是三個渲染器,因爲它會在當前的左側和右側創建一個渲染器。所以問題依然存在:哪一個是可見的? – Andy 2012-03-20 08:59:38

+0

在MX列表中,他們有一個屬性,offscreenExtraRowsorColumns嚴格用於此目的。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/listClasses/ListBase.html#offscreenExtraRowsOrColumns Spark列表似乎有類似的東西。可能在佈局或DataGroup上?對我來說沒有任何明顯的事爲什麼重要的渲染器可見? – JeffryHouser 2012-03-20 12:35:39

+0

對我來說這很重要,因爲出於多種原因,我想跟蹤用戶目前在哪個頁面上。有沒有辦法看到ItemRenderer的絕對X和Y定位?這樣,當兩者都爲零,然後我知道它正在屏幕上顯示.... – Andy 2012-03-20 14:54:12

相關問題