Question

J'ai rencontré quelques difficultés avec la mise en œuvre d'un dialogue de progression personnalisée. Même si une superposition INTERCEPTIONS touchent les événements que l'utilisateur peut encore fonctionner la boule de commande et cliquez sur les éléments qui sont censés être désactivés.

Y at-il moyen de contourner cela?

Edit: voici une solution

//=====================================================================================
protected void showProgressIndicator()
{
    progressIndicator_.show();
}

//=====================================================================================
@Override
public boolean onTrackballEvent(MotionEvent event)
{
    return progressIndicator_.getVisibility() == View.VISIBLE;
}

//=====================================================================================
protected void hideProgressIndicator()
{
    progressIndicator_.hide();
}

Une puis dans la méthode show

//=====================================================================================
public void show()
{
    setVisibility(VISIBLE);
    if (animationHandler_ != null)
        return;

    animationHandler_ = new Handler();
    animationHandler_.post(animateTask_);
    requestFocus();
}
Était-ce utile?

La solution

Vérifiez la onTrackballEvent () procédé . Ensuite, essayez de revenir directement vrai dans la méthode sans faire quoi que ce soit en elle. Cela devrait tuer l'événement tout de suite.

Autres conseils

Pour éviter que votre boule de commande faire quoi que ce soit pendant que votre activité est à l'écran, ajoutez le code suivant à votre sous-classe d'activité.

@Override 
public boolean dispatchTrackballEvent(android.view.MotionEvent ev) {
  return true;
};

Je l'ai testé cela sur un téléphone Google Nexus One et il fonctionne très bien.

Remplacer onTrackballEvent () ne fonctionne pas. Essayez impérieuses dispatchTrackballEvent (), ne rien faire dans ce juste retour vrai.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top