Spójrz na Workspace
widget in the Android Open Source Project Launcher2 code. Jest to widget, który implementuje zachowanie stronicowania na ekranie głównym Android.
Podstawową ideą jest utworzenie niestandardowego widgetu, który może przesuwać jego zawartość z regułami przyciągania do ostatecznej pozycji, jeśli użytkownik puści lub puści. Użyj parametru onInterceptTouchEvent
, aby określić, kiedy użytkownik przekroczył próg "zrzutu" w ruchu poziomym (możesz uzyskać wartości systemowe dla tego parametru z ViewConfiguration
) i wykraść fokus wejściowy z dowolnego widoku podrzędnego w hierarchii. Stamtąd kontroluj przesuwanie w onTouchEvent
. Możesz użyć parametru VelocityTracker
, aby określić, w jaki sposób zawartość powinna rzucać się, gdy użytkownik puszcza, a następnie Scroller
, aby pomóc w animacji do ostatecznej pozycji.