J'ai rencontré des difficultés lors de l'implémentation d'une boîte de dialogue de progression personnalisée. Même si une superposition intercepte des événements tactiles, l'utilisateur peut toujours actionner la boule de commande et cliquer sur les éléments censés être désactivés.Désactiver le clic du trackball dans Android
Y a-t-il un moyen de contourner ce problème?
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();
}
Votre solution n'est pas précisément correcte car l'utilisateur ne peut pas naviguer avec la trackball de cette façon mais il peut cliquer dessus. Donc, si un bouton est concentré, il peut toujours cliquer dessus. La solution consistait simplement à demander des foucs à partir de la boîte de dialogue de progression et à implémenter nTrackballEvent(). Merci pour vos conseils :) –
pouvez-vous s'il vous plaît poster la solution? – Pria
Une chance que vous pourriez afficher le code général? –