2017-09-27 3 views
0

Ich arbeite an einer sehr einfachen Anwendung, die einige Karten mit einem Bild und Text zeigt. Es funktioniert perfekt in dem Sinne, dass es gut zentriert ist und gut funktioniert. Wenn ich jedoch blättern/schleudern kann, kann die Karte, die landet, dritte oder sogar vierte von der aktuellen Karte sein.Wie kann ich nur zur nächsten oder zur vorherigen Karte springen?

Ich möchte es so beschränken, dass, wenn der Benutzer nach rechts schleudert (wie schnell), er auf nur eine vorherige Karte landen sollte und wenn er nach links schleudert, sollte er zur nächsten Karte gehen. Ist es möglich?

+0

Ich denke, Sie brauchen eine Art von vertikalen 'ViewPager' – snachmsm

+0

genau wie Scroll-Ereignisse gibt es auch Fling-Ereignisse. Verwende das. – Dennis

Antwort

0

In Ihrem Fall, ich denke, Sie sollten es lösen, indem Sie die Geschwindigkeit der Schleuder, RecyclerView hat Fling-Methode, Sie überschreiben es einfach.

float FLING_SPEED = 0.5f; 

@Override 
public boolean fling(int velocityX, int velocityY) 
{ 
    // FLING_SPEED between (0, 1) => slow down, greater 1 => speed up 
    // velocityY for vertical, velocityX for horizontal 
    velocityY *= FLING_SPEED; 
    return super.fling(velocityX, velocityY); 
} 
Verwandte Themen