1. gurkenprinz, 04.05.2010 #1
    gurkenprinz

    gurkenprinz Threadstarter Neuer Benutzer

    Hallo Leute !!

    Ich habe eigentlich das exakt selbe Problem wie dieser User.

    Problem with ViewFlipper and TouchEvent - Android Forums

    Leider hat ihm niemand geantwortet ;)

    Ich möchte auch dass sich mein ViewFlipper ähnlich verhält wie der Homescreen.
    Allerdings habe auch ich das Problem, dass der Flipper bei Berührungen immer nur das nächste Layout anzeigt, sprich von rechts nach links slided.

    Code:
    public boolean onTouch(View v, MotionEvent event) 
                {
                    
                    float startX = 0;
                    if(event.getAction()==MotionEvent.ACTION_DOWN)
                    {
                        startX=event.getRawX();
                    }
                    if(event.getAction()==MotionEvent.ACTION_UP)
                    {
                        
                        float endX = event.getX();
                        if(endX<startX)
                        {
                            vf.setAnimation(AnimationUtils.loadAnimation(v.getContext(), R.anim.slide_right));
                            vf.showPrevious();
                        }
                        if(endX>startX)
                        {
                            vf.setAnimation(AnimationUtils.loadAnimation(v.getContext(), R.anim.slide_left));
                            vf.showNext();
                            
                        }
                    }
    return true;
                
    Ich habs auch schon wie hier:

    Making a ViewFlipper like the Home Screen using MotionEvent.ACTION_MOVE - Stack Overflow

    mit einer switch anweisung gemacht ... hab aber das selbe Problem!

    Hat jemand eine Idee was ich falsch gemacht habe ??

    lg gurkenprinz
     
  2. dereulenspiegel, 04.05.2010 #2
    dereulenspiegel

    dereulenspiegel Android-Hilfe.de Mitglied

    Also ich habe das mit einem GestureDetector gelöst, der auf SlideEvents hört (SimpleGestureDetector). Und dann setze ich die jeweiligen Ein- bzw. Austrittsanimationen.
     
  3. Fr4gg0r, 04.05.2010 #3
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Also ich hab mir den Link jetzt zwar nicht angeschaut, jedoch solltest du dir bewusst sein, dass immer entweder ACTION_DOWN oder ACTION_UP aufgerufen wird.
    Somit ist startX immer 0, wenn die if Anweisung mit der ACTION_UP aufgerufen wird, d.h. nach links sliden fällt schonmal flach.
    (Ich vermute mal Eclipse wollte dass du startX ausserhalb der if Anweisung initialisierst?^^)
    Auf jeden Fall musst du startX in einer globalen Variable speichern...

    Edit: ich sehe grad, im ersten Link wurde es so wie bei dir in lokalen Variablen gespeichert, der zweite Link jedoch benutzt für den Startwert eine globale.
     
    Zuletzt bearbeitet: 04.05.2010
  4. gurkenprinz, 04.05.2010 #4
    gurkenprinz

    gurkenprinz Threadstarter Neuer Benutzer

    Danke für die Hilfe !!

    Habs jetzt startX als globale Variable deklariert und das ganze wieder mit der switch anweisung implementiert und jetzt funktionierts wunderbar !!

    Danke !
    lg gurkenprinz