這是棘手的滾動和滑動的跟蹤工作,在Android上同時使用ViewAnimator
或它的子類。
它們允許您設置進出動畫並在給定時刻啓動它們,但它們可以處理離散的,這個或這個或那個視圖的動畫。他們實際上使用的是FrameLayout
,並且在執行動畫之後,其他視圖的可見性設置爲View.GONE
,以防止他們在當前的View
之下顯示。
啓動器和圖庫應用程序實際上是通過使用不同的方法來實現所需的功能。 他們跟蹤用戶的觸摸輸入(onTouchEvent()
),在MotionEvent.ACTION_MOVE
他們手動執行動畫和MotionEvent.ACTION_UP
快照到適當的視圖,就像在iPhone中。
不幸的是,這種方法實際上比看起來更復雜。 通過手動操作,您必須確保您正在處理與觸摸輸入相關的所有內容。這包括很多升旗,價值檢查,事件委託等。 如果你想更好地瞭解這一點,請看看Gallery3D或Launcher的源代碼中的這些類。
另一種獲得很好水平滾動的方法是使用HorizontalScrollView
。 你必須找出回收視圖的方法,就像使用ListView
一樣,你必須添加管理單元查看邏輯,但是如果你必須處理少量的視圖,它可能是最簡單的做法。
希望有所幫助。