Disabilita trackball click in Android
Domanda
ho incontrato qualche difficoltà con l'attuazione di una finestra di dialogo di avanzamento personalizzato. Anche se un overlay intercetta toccano eventi l'utente può comunque utilizzare la trackball e fare clic su elementi che dovrebbero essere disabilitata.
C'è un modo per aggirare questo?
Edit: ecco una soluzione
//=====================================================================================
protected void showProgressIndicator()
{
progressIndicator_.show();
}
//=====================================================================================
@Override
public boolean onTrackballEvent(MotionEvent event)
{
return progressIndicator_.getVisibility() == View.VISIBLE;
}
//=====================================================================================
protected void hideProgressIndicator()
{
progressIndicator_.hide();
}
Un poi nel metodo show
//=====================================================================================
public void show()
{
setVisibility(VISIBLE);
if (animationHandler_ != null)
return;
animationHandler_ = new Handler();
animationHandler_.post(animateTask_);
requestFocus();
}
Soluzione
onTrackballEvent () metodo . Quindi provare a tornare direttamente vero nel metodo senza fare nulla in esso. Questo dovrebbe uccidere l'evento subito.
Altri suggerimenti
Al fine di evitare che il trackball di fare qualsiasi cosa, mentre la vostra attività è sullo schermo, aggiungere il seguente codice per la sottoclasse di attività.
@Override
public boolean dispatchTrackballEvent(android.view.MotionEvent ev) {
return true;
};
Ho provato questo su un Google Nexus One telefono e funziona bene.
Override onTrackballEvent () non funziona. Prova sovrascrivendo dispatchTrackballEvent (), non fare nulla in essa solo return true;.