2012-05-04 121 views
0

我正在構建基於紙牌遊戲的應用程序。用戶可以看他自己的卡片;他也可以「在桌子周圍」滾動來查看對手的公開牌。屏幕一次顯示一個玩家(用戶或對手之一)。全屏畫廊滾動問題

我用Gallery來實現它。有了一個自定義適配器,我把它做成了圓形。我還截獲了onFling(),以確保它「閃現」到下一位玩家,而不是在桌子周圍。到現在爲止還挺好。

這是問題所在。如果圖庫的元素與整個屏幕一樣寬,則圖庫效果不佳。我無法將視圖「稍微」拖動以暴露下一位玩家。大多數時候,投擲並不起作用。當它的時候,沒有動畫;視圖只是切換到下一個玩家。

我通過使畫廊元素比屏幕窄2個像素來解決它。 1像素是不夠的:它修復了向一個方向滾動,但另一個方向仍然「僵硬」。

我寫這個有兩個原因。首先,如果你有類似的問題,這篇文章可能會爲你節省幾個小時。其次,我很好奇:任何Android專家都可以解釋Gallery控件的這種行爲嗎?

回答

1

我做了同樣的東西,但與HorizontalScrollView。也許你應該試試這個,而不是一個畫廊。 您只需在視圖上設置OnTouchListener,並在onTouch捕獲MotionEvent.ACTION_UP時調整滾動。

+0

沒有必要:它現在工作正常,現在我略微縮小了畫廊的子視圖。使用水平滾動視圖,除了調整滾動以捕捉屏幕之外,我還需要做些事情來使滾動成爲圓形。我更感興趣的是爲什麼畫廊對子視圖的寬度非常敏感。 – user1334767