2010-03-11 134 views
2

視圖不會緩存在ViewFlipper中。有沒有一種方法可以讓我們看到圖像並將其展示給用戶,以便他能夠看到我們在主屏幕上看到的用戶界面(當我們滑動前一個視圖時也會沿着這個方向移動,當我們擡起手指時,只有下一個視圖完全顯示。)ViewFlipper緩存問題

我想要做的是,當用戶開始在屏幕上移動他的finegr時,視圖也應該移動(創建視圖圖像)。

我不會這樣做,因爲當我們滑動當前視圖並且下一個視圖到來時,當我們在屏幕上移動手指時,我們不會看到這兩個視圖。

如果有人得到我想要做的,請幫助我。

感謝, 法哈

回答

4

這是棘手的滾動和滑動的跟蹤工作,在Android上同時使用ViewAnimator或它的子類。

它們允許您設置進出動畫並在給定時刻啓動它們,但它們可以處理離散的,這個或這個或那個視圖的動畫。他們實際上使用的是FrameLayout,並且在執行動畫之後,其他視圖的可見性設置爲View.GONE,以防止他們在當前的View之下顯示。

啓動器和圖庫應用程序實際上是通過使用不同的方法來實現所需的功能。 他們跟蹤用戶的觸摸輸入(onTouchEvent()),在MotionEvent.ACTION_MOVE他們手動執行動畫和MotionEvent.ACTION_UP快照到適當的視圖,就像在iPhone中。

不幸的是,這種方法實際上比看起來更復雜。 通過手動操作,您必須確保您正在處理與觸摸輸入相關的所有內容。這包括很多升旗,價值檢查,事件委託等。 如果你想更好地瞭解這一點,請看看Gallery3DLauncher的源代碼中的這些類。

另一種獲得很好水平滾動的方法是使用HorizontalScrollView。 你必須找出回收視圖的方法,就像使用ListView一樣,你必須添加管理單元查看邏輯,但是如果你必須處理少量的視圖,它可能是最簡單的做法。

希望有所幫助。