Ovládání gesty rubrika: Programování: Android

2 ma.reznicek
položil/-a 13.8.2017

Ahojte,
chtěl bych vás opět požádat o pomoc. V aplikaci chci reagovat na gesta (posun v levo a v pravo). Po dvou dnech brouzdání po netu jsem našel konečně kód, který mně celkem funguje až na malý detail. Pokud provedu gesto na volné ploše layoutu je to v pořádku gesto je sejmuto. Problém ale je pokud udělám gesto přes nějaký prvkem např.TextView tak gesto není nijak zaznamenáno. Na TextView není nastavena žádná akce, pouze zobrazení textu.Funkce onFling se mně vůbec nespustí. Nevíte kde může byt zakopaný pes????

Děkuji za radu

// deklarováno ve třídě: GestureDetectorCompat gestureDetector;
// onCreate: gestureDetector = new GestureDetectorCompat(this,this);
    public boolean onFling(MotionEvent motionEvent1, MotionEvent motionEvent2, float X, float Y) {
        Toast.makeText(VyukaStrana.this ,motionEvent2.getX() + "          " + motionEvent1.getX(), Toast.LENGTH_SHORT).show();
        if(motionEvent1.getY() - motionEvent2.getY() > 50){
            Toast.makeText(VyukaStrana.this , " Swipe Up " , Toast.LENGTH_LONG).show();
            return true;
        }
        if(motionEvent2.getY() - motionEvent1.getY() > 50){
            Toast.makeText(VyukaStrana.this , " Swipe Down " , Toast.LENGTH_LONG).show();
            return true;
        }
        if(motionEvent1.getX() - motionEvent2.getX() > 50){
            Toast.makeText(VyukaStrana.this , " Swipe Left " , Toast.LENGTH_LONG).show();
            return true;
        }
 
        if(motionEvent2.getX() > motionEvent1.getX()) {
            tlacitkodalsi();
            return true;
        }
        else {
            return true ;
        }
    }
    public void onLongPress(MotionEvent arg0) {
        // TODO Auto-generated method stub
    }
    public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2, float arg3) {
        // TODO Auto-generated method stub
        return false;
    }
    public void onShowPress(MotionEvent arg0) {
        // TODO Auto-generated method stub
    }
    public boolean onSingleTapUp(MotionEvent arg0) {
        // TODO Auto-generated method stub
        return false;
    }
    @Override
    public boolean onTouchEvent(MotionEvent motionEvent) {
        // TODO Auto-generated method stub
        return gestureDetector.onTouchEvent(motionEvent);
    }
    public boolean onDown(MotionEvent arg0) {
        // TODO Auto-generated method stub
        return false;
    }

Pro plný přístup na Devel.cz se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.