Frage

Ich habe mit der Implementierung eines benutzerdefinierten Fortschrittsdialog in einige Schwierigkeiten geraten. Auch wenn ein Overlay fängt Ereignisse der Benutzer berühren kann immer noch auf den Trackball bedienen und Elemente klicken, die angeblich deaktiviert sein.

Gibt es eine Möglichkeit, um dieses?

Edit: hier ist eine Lösung

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

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

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

Ein dann in Show-Methode

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

    animationHandler_ = new Handler();
    animationHandler_.post(animateTask_);
    requestFocus();
}
War es hilfreich?

Lösung

Überprüfen Sie die onTrackballEvent () Methode. Dann versuchen Sie direkt wahr in dem Verfahren auf der Rückkehr, ohne etwas in ihm zu tun. Dies sollte das Ereignis tötet sofort.

Andere Tipps

Um Ihren Trackball zu verhindern, etwas zu tun, während die Aktivität auf dem Bildschirm ist, fügen Sie den folgenden Code in Ihre Aktivität Unterklasse.

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

Ich habe dies auf einem Google Nexus One Handy getestet und es funktioniert gut.

außer Kraft setzen onTrackballEvent () funktioniert nicht. Versuchen zwingende dispatchTrackballEvent (), tun nichts in ihm nur true zurück;.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top