Chciałbym przejść płynnie do następnego położenia przewijania w moim widoku niestandardowym (na przycisku lub zdarzenia). Jak to wdrożyć? Przede wszystkim nie widzę klasy animacji przewijania (tylko alfa, obracanie, skalowanie i tłumaczenie). Po drugie, mając klasę animacji, nie widzę sekwencji iteracyjnej (powiedzmy, aby przewijać prawa do pikseli równej dowolnej pozycji) tylko te bezwzględne (tj. Aby animować z jednej wartości stałej do drugiej).Jak animować pozycję przewijania? Jak płynnie przewijać?
Odpowiedz
Zakładając, że używasz ScrollView, czy funkcja smoothScrollTo (...) działa dla Ciebie?
http://developer.android.com/reference/android/widget/ScrollView.html#smoothScrollTo%28int,%20int%29
Zobacz przykładowy kod view_cache_demo, aby zobaczyć, jak zrobić animowany przewijanie. Działa w 2D, buforuje złożony rysunek, a także obsługuje gesty rzucania, ale można uprościć wszystko, jeśli jest to konieczne.
Animowanie przewijania odbywa się poprzez połączenie za pomocą Scroller/OverScroller (aby obliczyć po raz interpolowane wartości swoich przesunięć przewijania), GestureDetectors (aby uruchomić obiekt scroller) oraz metodę widokiem onComputeScroll (która niejawnie jest twoją pętlą animacji).
Oficjalne dokumenty dla Androida mają teraz szczegółowy samouczek dotyczący właśnie tego tematu. http://developer.android.com/training/gestures/scroll.html
Korzystanie ObjectAnimator, to jest próbka do przewijania do góry:
public void scroolToTop() {
int x = 0;
int y = 0;
ObjectAnimator xTranslate = ObjectAnimator.ofInt(mScrollView, "scrollX", x);
ObjectAnimator yTranslate = ObjectAnimator.ofInt(mScrollView, "scrollY", y);
AnimatorSet animators = new AnimatorSet();
animators.setDuration(1000L);
animators.playTogether(xTranslate, yTranslate);
animators.addListener(new AnimatorListener() {
@Override
public void onAnimationStart(Animator arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animator arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animator arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationCancel(Animator arg0) {
// TODO Auto-generated method stub
}
});
animators.start();
}
- 1. Jak animować punkt przewijania?
- 2. jak przewijać poziomy widok przewijania bez animacji
- 3. Chrome zapamiętuje pozycję przewijania
- 4. Jak utrzymać pozycję przewijania w MVC?
- 5. jak ustawić pozycję przewijania na uiwebview
- 6. ListView uzyskać pozycję przewijania?
- 7. Jak przewijać na górze strony w jonowym
- 8. Dołącz zawartość do div i przewijać/animować do dolnej
- 9. CSS ustawić domyślną pozycję przewijania
- 10. Jak obsługiwać pozycję przewijania w haszyszu w aplikacji Backbone.js?
- 11. Jak programowo przewijać TreeView?
- 12. Jak zrobić JScrollPane przewijać 1 linię na kółko myszy?
- 13. Jak płynnie animować wysokość w CSS lub Javascript na urządzeniach mobilnych
- 14. Jak automatycznie przewijać widok tabeli? (Swift)
- 15. Jak sprawić, by RecyclerView przewijał się płynnie?
- 16. Jak mogę uzyskać aktualną pozycję przewijania na UIWebView
- 17. Jak zapisać pozycję przewijania RecyclerView w systemie Android?
- 18. Jak uzyskać ostatnią pozycję widoku przewijania, przewiń widok
- 19. Jak ustawić pozycję przewijania do góry widoku listy
- 20. Jak kontrolować pozycję przewijania ListBox w aplikacji WPV MVVM
- 21. Jak utrzymać stronę pozycję przewijania po odświeżenie strony w asp.net
- 22. Jak określić wysokość i pozycję przewijania okna w jQuery?
- 23. jak zachować pozycję paska przewijania w widoku listy Android?
- 24. Jak wykrywać pozycję przewijania strony za pomocą jQuery
- 25. Jak przewijać w poziomie w Jquery Mobile?
- 26. iphone UIWebView zapisuje aktualną pozycję przewijania?
- 27. Animacja UISlider płynnie
- 28. WPF DataGrid - zachowaj pozycję przewijania po odświeżeniu
- 29. Jak animować View.setVisibility (GONE)?
- 30. Jak animować tłumaczenie widoku
powinienem używać 'ScrollView'? Używam teraz 'MyClass extends View'. –
Myślę, że to zależy od tego, co robisz, jeśli ScrollView działa dla Ciebie, a następnie zdecydowanie go używać. –
Próbowałem rozszerzania 'ScrollView', ale stwierdziłem, że' onScrollChanged() 'nie wywołał w przypadku. Potrzebuję tej metody do wywołania, ponieważ obliczyłem w niej pewne parametry. To znaczy. 'smoothScroll' nie działa dla mnie. –