Ich versuche, eine Fortschrittsleiste im Code hinzuzufügen und sie zu bestimmen:
%Vor% Nach progressBar.setIndeterminate(false)
, isIndeterminate
ist immer noch wahr und der Fortschritt zeigt den unbestimmten Kreis an.
Wie kann ich es bestimmen?
Aus dem ProgressBar-Quellcode hier der Konstruktor Sie rufen in Zeile 237 auf, die den Konstruktor in Zeile 241 aufruft, die ihrerseits den Konstruktor in Zeile 245 mit dem Stil aufruft:
%Vor%Dieser Stil hat standardmäßig das Attribut android: indeterminateOnly, so dass Ihre Aufrufe von setIndeterminate ignoriert werden. Siehe Funktionsbeschreibung in Zeile 433.
Ich habe das nicht getan, aber ich nehme an, wenn Sie den Konstruktor in Zeile 245 wie folgt aufrufen:
%Vor%übergibt als dritter Parameter eine Stildefinition mit android: indeterminateOnly to false sollte funktionieren. Basierend auf dem Quellcode gehe ich davon aus, dass setIndeterminate nur vorhanden ist, um es zu aktivieren und nicht zu deaktivieren.
Hoffe, das hilft ...
Es sieht nicht so aus, als würden Sie das style-Attribut der ProgressBar setzen. Von den Dokumenten für setIndeterminate()
:
Wenn der Stil dieses Fortschrittsbalkens nur einen unbestimmten Modus unterstützt (z. B. die kreisförmigen Fortschrittsbalken), wird dies ignoriert.
Sie sollten den Stil manuell einstellen, z. über style="@android:style/Widget.ProgressBar.Horizontal"
. Das Ändern der Drawable
ist nicht genug.
Ihr Standard-ProgressBar-Stil hat android: indeterminateOnly auf true gesetzt. Sie können also den unbestimmten Status von ProgressBar nicht ändern. Quellcode.
Tags und Links android android-progressbar