Wie wird Android ProgressBar im Code festgelegt? [Duplikat]

8

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?

    
AlikElzin-kilaka 22.07.2013, 15:01
quelle

4 Antworten

2

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 ...

    
Christos 22.07.2013, 15:41
quelle
1

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.

    
Geobits 22.07.2013 15:19
quelle
0

Ihr Standard-ProgressBar-Stil hat android: indeterminateOnly auf true gesetzt. Sie können also den unbestimmten Status von ProgressBar nicht ändern. Quellcode.

    
Leonidos 22.07.2013 15:34
quelle
-1

Versuchen Sie auch, setProgress() zu verwenden, was ein Integer-Argument zwischen null und getMax() erfordert.

    
Karakuri 22.07.2013 15:17
quelle

Tags und Links