Von Ihren Anforderungen sollten Sie wahrscheinlich kein ProgressDialog
verwenden, da es die Benutzeraktionen "sperrt", bis Sie es abbrechen (oder der Benutzer es durch Drücken der Zurück-Schaltfläche abbricht).
wäre eine andere Lösung, die eine Ansicht mit einer zentrierten ProgressBar
und einem TextView
und dann GONE
seine ursprüngliche Sichtbarkeit gesetzt zu schaffen sein, sobald Sie Ihre Suche starten laden, können Sie diese Ansicht Sichtbarkeit VISIBLE
und alles andere zu GONE
ändern (außer den Dingen, die du sehen möchtest, wie dein Menü).
Mit dieser sagte, Du so etwas wie der Screenshot unten bekommen:
Auf diese Weise der Benutzer in der Lage sein wird, mit anderen Komponenten auf dem Bildschirm wie der Zugriff auf das Einstellungsmenü zu interagieren.
Der XML-Code ist wie folgt:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="LOADING..."
app:layout_constraintTop_toBottomOf="@+id/progressBar"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"/>
</android.support.constraint.ConstraintLayout>
Es ist irgendwie widersprüchlich „Bitte warten“ zu sagen, während es dem Benutzer ermöglicht den Zugriff auf, was es für wartet. Sie müssen möglicherweise klarer sein, was Sie erreichen möchten. Die nächste Sache, an die ich denken kann, ist die Verwendung einer Benachrichtigung anstelle eines Fortschrittsdialogs. – codeMagic
Ich möchte die Fortschrittsdialognachricht für den Benutzer anzeigen, bis die Suche abgeschlossen ist. Wenn die Suchoperation noch läuft, sollte ich in der Lage sein, auf das Menü zuzugreifen, das in demselben Bildschirm auch den Fortschrittsdialog anzeigen sollte, weil Suche noch nicht vorbei ist. –
Verwenden Sie auf diese Weise keinen ProgressDialog. Sie können eine Ansicht (wie eine Textansicht) hinzufügen und während der Suche die Sichtbarkeit ändern. Klingt immer noch verwirrend für mich gedacht – codeMagic