2015-10-05 1 views
0

Mon intention est d'implémenter swipe dans une mise en page. En glissant de gauche à droite dans la mise en page, une vue sera visible et cachée.Comment implémenter le geste de balayage (gauche/droite) dans une mise en page dans Android Studio?

Utilisez Android Studio. Y a-t-il une bibliothèque disponible pouvant être utilisée directement?

+1

Vous pouvez jeter un coup d'œil à ViewPager. Voir par exemple [Documentation de Google] (https://developer.android.com/training/animation/screen-slide.html). –

+0

J'ai juste besoin de glisser à l'intérieur d'une petite mise en page dans une page. tout comme vous avez deux images dans la boîte, sur le balayage de gauche à droite, un sera affiché et l'autre sera partielle et vice versa. Je ne suis pas en mesure de télécharger une capture d'écran ici. – dreamdeveloper

+0

Je pense que vous essayez d'implémenter une mise en page comme tinder.right? –

Répondre

1

Vous pouvez utiliser l'écoute de gestes d'onfling. Exemple de code pour vous donné ci-dessous

public class MyActivity extends Activity { 
private void onCreate() { 
// Set your layout 
final ImageView imageView = (ImageView) findViewById(R.id.image_view); 
imageView.setOnTouchListener(new OnTouchListener() { 
    @Override 
    public boolean onTouch(final View view, final MotionEvent event) { 
     return gdt.onTouchEvent(event); 
    } 
}); 
    } 

    private final GestureDetector gdt = new GestureDetector(new  GestureListener()); 

    private class GestureListener extends SimpleOnGestureListener { 

private final int SWIPE_MIN_DISTANCE = 120; 
private final int SWIPE_THRESHOLD_VELOCITY = 200; 

@Override 
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
    if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) >  SWIPE_THRESHOLD_VELOCITY) { 
     // Right to left, your code here 
     return true; 
    } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE &&  Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
     // Left to right, your code here 
     return true; 
    } 
    if(e1.getY() - e2.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) >  SWIPE_THRESHOLD_VELOCITY) { 
     // Bottom to top, your code here 
     return true; 
    } else if (e2.getY() - e1.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) { 
     // Top to bottom, your code here 
     return true; 
    } 
    return false; 
    } 
    } 
    }