Solución:
SOLUCIÓN: ¡Es un error en la barra de progreso!
finalmente … creo que encontré la solución …
esto no funciona como cabría esperar:
bar.setMax(50);
bar.setProgress(20);
bar.setMax(20);
bar.setProgress(20);
El setProgress (…) parece no activar la actualización en el dibujable si se vuelve a pasar el mismo valor. Pero tampoco se activa durante setMax. Entonces falta la actualización. ¡Parece un error en la barra de progreso de Android! Esto me tomó alrededor de 8 horas ahora … jajaja: D
Para resolver esto, solo estoy haciendo un bar.setProgress (0) antes de cada actualización … esto es solo una solución, pero funciona para mí como se esperaba:
bar.setMax(50);
bar.setProgress(20);
bar.setProgress(0); // <--
bar.setMax(20);
bar.setProgress(20);
Pude hacer que esto funcionara View.post()
:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// ...
mSeekBar.post(new Runnable() {
@Override
public void run() {
mSeekBar.setProgress(percentOfFullVolume);
}
});
}
Al igual que con la respuesta de SKT, no me queda claro por qué esto debería funcionar cuando esto no funciona
mSeekBar.setProgress(percentOfFullVolume);
Sin embargo, parece ser cierto hasta e incluyendo Android Lollipop.
Puede usar un controlador para actualizar progressbar
Handler progressBarHandler = new Handler();
ProgressBar bar = (ProgressBar) findViewById(R.id.progressBar1);;
progressBarHandler .post(new Runnable() {
public void run() {
bar.setProgress(progress);
}
});