Mam widok przewijania. Wykonałem smooth-scroll.using smoothScrollBy(). Wszystko działa dobrze, ale chcę zmienić czas trwania płynnego przewijania. Gładkie przewijanie odbywa się bardzo szybko, a użytkownik nie rozumie, co się stało. Pomóż mi zmniejszyć szybkość płynnego przewijania?Zmniejszenie prędkości płynnego przewijania w widoku przewijania
Odpowiedz
Oto rozwiązanie z zegarem, który wykorzystuje scrollTo ale można również użyć scrollBy Android: HorizontalScrollView smoothScroll animation time
whichScreen = Math.max(0, Math.min(whichScreen, getBase().getDocumentModel().getPageCount()-1));
mNextScreen = whichScreen;
final int newX = whichScreen * getWidth();
final int delta = newX - getScrollX();
//scroller.startScroll(getScrollX(), 0, delta, 0, Math.abs(delta) * 2);
scroller.startScroll(getScrollX(), 0, delta, 0, Math.abs(delta));
invalidate();
Wypróbuj poniższy kod:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
{
ValueAnimator realSmoothScrollAnimation =
ValueAnimator.ofInt(parentScrollView.getScrollY(), targetScrollY);
realSmoothScrollAnimation.setDuration(500);
realSmoothScrollAnimation.addUpdateListener(new AnimatorUpdateListener()
{
@Override
public void onAnimationUpdate(ValueAnimator animation)
{
int scrollTo = (Integer) animation.getAnimatedValue();
parentScrollView.scrollTo(0, scrollTo);
}
});
realSmoothScrollAnimation.start();
}
else
{
parentScrollView.smoothScrollTo(0, targetScrollY);
}
ten sposób osiągnąłem sprawnego przewijania pionowego (jak kredyty filmowe). Pozwala to również użytkownikowi na przesuwanie przewijania w górę iw dół oraz zezwolenie na kontynuowanie przewijania po zwolnieniu. W moim XML, hermetyzowałem mój TextView wewnątrz ScrollView zwanego "scrollView1". Cieszyć się!
final TextView tv=(TextView)findViewById(R.id.lyrics);
final ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView1);
Button start = (Button) findViewById(R.id.button_start);
Button stop = (Button) findViewById(R.id.button_stop);
final Handler timerHandler = new Handler();
final Runnable timerRunnable = new Runnable() {
@Override
public void run() {
scrollView.smoothScrollBy(0,5); // 5 is how many pixels you want it to scroll vertically by
timerHandler.postDelayed(this, 10); // 10 is how many milliseconds you want this thread to run
}
};
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timerHandler.postDelayed(timerRunnable, 0);
}
});
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timerHandler.removeCallbacks(timerRunnable);
}
});
Skąd będę wiedzieć, że przewinięcie osiągnęło dno, a programowanie musi zostać wyłączone? Jak sobie z tym poradzić? – AlexKost
Odpowiedź jest prosta, po prostu zastąpić
scrollView.smoothScrollTo(0, scrollTo);
z
ObjectAnimator.ofInt(scrollView, "scrollY", scrollTo).setDuration(duration).start();
gdzie czas to czas w milisekundach chcesz go wziąć
- 1. Funkcja przewijania widoku list w widoku przewijania
- 2. Włączanie powiększania przewijania widoku
- 3. Pełny ekran w widoku przewijania
- 4. Wyśrodkuj zawartość w widoku przewijania
- 5. EditText w widoku przewijania w Androidzie
- 6. Android: Widok poziomy w widoku pionowego przewijania?
- 7. Jak wyłączyć funkcję przewijania w widoku TScrollBox?
- 8. CListCtrl Pionowy pasek przewijania w widoku listy
- 9. Zmiana koloru przewinięcia przewijania w trybie przewijania w systemie Android
- 10. Jak zmniejszyć szybkość przewijania widoku UIScroll
- 11. Funkcja przybliżania szczypania wewnątrz widoku przewijania
- 12. Zatrzymywanie przewijania w UICollectionView
- 13. Jak dodać przeciągany pasek przewijania do przewijania/widoku listy w systemie Android?
- 14. Autouzupełnianie w iOS z UIScrollview: Dlaczego widok zawartości przewijania nie wypełnia widoku przewijania?
- 15. Jak wyzwalać zdarzenia przewijania bez przewijania
- 16. Jak określić kierunek przewijania bez rzeczywistego przewijania
- 17. Blokady przewijania/przewijania po animacji z przewijaniem
- 18. Wykryj szybkość przewijania GridView - Android
- 19. Test przewijania
- 20. Animacja przewijania
- 21. gładkie przewijania z javascript onclick
- 22. Kierunek przewijania w OnPageChangeListener
- 23. Regulacja UICollectionView szybkość przewijania/czułość
- 24. Przesunięcie przewijania GridView
- 25. zmniejszanie krawędzi przewijania podczas przewijania w systemie Android
- 26. Jak zwiększyć szerokość paska przewijania w przeglądarce przewijania WPF?
- 27. Jak osadzić widok stosu w widoku przewijania programowo
- 28. Moje obrazy zmieniają się podczas przewijania w widoku listy Android
- 29. Automatyczne przewijanie pasków podczas przewijania w widoku listy
- 30. jak zachować pozycję paska przewijania w widoku listy Android?
ten powinien być wybrany jako odpowiedź do pytania. +1 –
Zamiast używać ValueAnimator, dlaczego nie używać ObjectAnimatora (podklasy ValueAnimatora)? To sprawia, że jest jeszcze łatwiejsze - jeden linijek, w rzeczywistości: ObjectAnimator.ofInt (scrollView, "scrollY", targetScrollY) .setDuration (500) .start(); –