2011-10-22 46 views
1

我使用自定義適配器圖庫我有圖像畫廊,從水平滑動。 每個圖像都有一個與其關聯的標題。我想要的是一個適當的標題出現在我的屏幕的標題,如果圖像是可見的。如何獲取Android圖庫中可見視圖的索引?

我通過把這些線在我的getView()方法,這樣做:

myGalleryImage.setBitmap(myImageBitmapArray.get(position) 
caption.setText(myArrayList.get(position) 

會發生什麼事是我的圖片庫工作正常,但我沒有與特定的圖像,也就是說,如果(我正確的字幕在在索引4)的位置的圖像然後有時我得到索引5和有時3的標題,但從來沒有適當的標題。

回答

2

你經常覆蓋與上次視圖字幕加載,通常不是中心的看法,但邊緣的觀點,因此爲什麼它始終是3或5,但從來沒有4 - 哪一個會是高達方向的旅行。

您需要使用圖庫方法setOnItemSelectedListener(AdapterView.OnItemSelectedListener listener)否則您必須輪詢可怕以確定何時發生了更改,然後我認爲提供的位置將成爲中心項目(圖庫有點像微調的黑客攻擊這有點令人困惑)。

我不知道,如果位置將是準確的,如果你有一個以上的在屏幕上,但一旦你已經調查你可以工作,其中之一是,並顯示在標題。

這不是你想要放在getView()方法中的東西,因爲它可能因緩存而被調用,也可能不會被調用,反正它永遠不會是正確的。

+0

是的,你是對的,這是問題,因爲例如,我有一個可見的圖像比我滾動和不讓其他圖像完全進入屏幕我只是給它一個下一個圖像角落來到這個jurk ...在這情況我的標題變得更新,我不想要... –

+0

我想更改滾動基於可見圖像的標題 –

+0

您是否嘗試修改代碼以使用onItemSelectedListener,而不是在getView代碼中更改它?選擇的監聽器不應該在您稍微滾動然後讓它返回的情況下進行更改(但顯然getView將會因爲它必須展開視圖才能顯示其中的一部分)。 – zeetoobiker