2

J'ai un problème avec mon application: j'ai un FrameLayout avec un fragment qui contient une carte de l'APi Google Maps Android (v2) et une vue personnalisée que j'utilise pour afficher divers boutons sur le dessus de la carte.La consommation d'un événement tactile m'empêche de détecter des événements futurs

Je voudrais certains de ces éléments ne doit pas être représentés alors que la carte est déplacée, pour cela, j'utilise la fonction onTouchEvent() de la vue:

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    switch (event.getActionMasked()) { 
    case MotionEvent.ACTION_DOWN: 
     pressed = true; 
     invalidate(); 
     break; 

    case MotionEvent.ACTION_UP: 

     pressed = false; 
     invalidate(); 
     break; 
    } 
    return false; 
} 

La fonction onDraw() affiche uniquement Maintenant, mon problème est dans le retour: si je mets faux, je dis que l'événement n'a pas été consommé, et l'OS Android ne me notifie plus lorsque les événements tactiles sont enregistrés, donc le MotionEvent.ACTION_UP n'est pas détecté et les boutons restent cachés. Si je mets true, les événements tactiles ne sont plus détectés cette fois par l'objet GoogleMap et je ne peux pas déplacer la carte. Y at-il un moyen de continuer à détecter tous les événements tactiles futurs, tout en ne consommant pas le premier événement?

+1

Avez-vous trouvé une solution de contournement par la suite? J'ai le même problème. – SqueezyMo

Répondre

Questions connexes