In meiner XML-Datei für die MainActivity habe ich eine kreisförmige ProgressBar definiert, die ich immer anzeigen möchte, wenn meine App etwas lädt.ProgressBar wird nicht angezeigt, wenn ich View.GONE nach View.VISIBLE (aber nur auf älteren Telefonen) anrufe
private void refresh() {
new AsyncTask<Void, Void, Void>() {
@Override
protected void onPreExecute() {
super.onPreExecute();
//show progress bar and blur background
progressBar.setVisibility(View.VISIBLE);
mainActivityScreen.setAlpha(0.5f);
}
@Override
protected Void doInBackground(Void... params) {
/*do something */
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPreExecute();
//hide progress bar and unblur background
progressBar.setVisibility(View.GONE);
mainActivityScreen.setAlpha(1.0f);
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
Wenn ich diesen Code auf meinem Nexus 6P laufen, es tut genau das, was es sein sollte. Ich klicke auf die Schaltfläche "Aktualisieren", eine Fortschrittsleiste wird angezeigt (die anfangs unsichtbar war), die App führt einige Netzwerkoperationen durch und wenn sie beendet ist, verschwindet die Fortschrittsleiste wieder. Jetzt, wenn ich den gleichen Code auf einem älteren Telefon laufen lasse, wird die progressBar nicht angezeigt. Zuerst dachte ich, vielleicht kann das Telefon nicht die progressBar laden, aber das ist nicht das Problem, da, wenn ich gehe, um die Linie
progressBar.setVisibility(View.GONE);
es zeigt sich (aber offensichtlich nicht wieder verschwinden). Es ist auch kein Problem, dass es nicht lange genug angezeigt wird, um es zu bemerken, da die Netzwerkoperationen ungefähr 2 Sekunden dauern.
Kann mir bitte jemand sagen, warum das nur auf meinem neueren Telefon funktioniert und nicht auf einem älteren? Ich werde verrückt danach.
Vielen Dank im Voraus für jeden, der hilft.
EDIT: xml:
<ProgressBar
android:id="@+id/progressBar"
style="@android:style/Widget.DeviceDefault.ProgressBar"
android:indeterminateTint="@color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:indeterminate="true"
android:visibility="gone"/>
Was ist die API-Ebene des älteren Telefons? –
@AnjalSaneen 23 –