Desactivar trackball clic en Android
Pregunta
Me he encontrado algunas dificultades con la implementación de un diálogo de progreso personalizado. A pesar de que un revestimiento táctil intercepta los eventos que el usuario puede seguir funcionando la rueda de desplazamiento y haga clic en los elementos que se supone que son personas con discapacidad.
¿Hay alguna forma de evitar esto?
Edit: he aquí una solución
//=====================================================================================
protected void showProgressIndicator()
{
progressIndicator_.show();
}
//=====================================================================================
@Override
public boolean onTrackballEvent(MotionEvent event)
{
return progressIndicator_.getVisibility() == View.VISIBLE;
}
//=====================================================================================
protected void hideProgressIndicator()
{
progressIndicator_.hide();
}
Un entonces en el método espectáculo
//=====================================================================================
public void show()
{
setVisibility(VISIBLE);
if (animationHandler_ != null)
return;
animationHandler_ = new Handler();
animationHandler_.post(animateTask_);
requestFocus();
}
Solución
onTrackballEvent () método . A continuación, intente volver directamente cierto en el método sin hacer nada en ella. Esto debe matar al caso de inmediato.
Otros consejos
Con el fin de evitar que su trackball hacer nada mientras que su actividad está en la pantalla, añadir el siguiente código a la subclase de actividad.
@Override
public boolean dispatchTrackballEvent(android.view.MotionEvent ev) {
return true;
};
He probado esto en un Google Nexus Uno de los teléfonos y funciona bien.
onTrackballEvent Ignorar () no funciona. Trate anulando dispatchTrackballEvent (), no hacer nada en ella simplemente return true;.