2011-04-12 20 views
5

Tengo un diseño con una barra ProgressBar (en realidad es una barra SeekBar pero el mismo problema ocurre con la barra ProgressBar). Funciona bien hasta que empiezo a animar todo el diseño, traduciéndolo. Durante la animación, ProgressBar sigue funcionando como se esperaba, pero cuando finaliza la animación (y congelo el diseño en la posición final de la animación con Animation.setFillAfter (true)), ProgressBar deja de actualizarse correctamente, en lugar de solo una línea pequeña en la parte superior de la barra se actualiza mientras la parte inferior de progressBar permanece congelada (es una barra de progreso horizontal).ProgressBar no se actualiza correctamente después de la animación

Algunos código: El diseño con ProgressBar:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/video_buttons" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|left"> 
<SeekBar 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/progressbar_Horizontal" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:max="100" 
/> 

Aquí es donde defino la Animación:

Animation a = AnimationUtils.loadAnimation(this, R.anim.translate_down); 
a.setFillAfter(true); 

Aquí es donde comienzo a la animación en todo el diseño:

View vv = p.findViewById(R.id.video_buttons); 
vv.startAnimation(anim); 
+0

No hay suficiente código. Deberías publicar un caso de prueba completo. –

Respuesta

0

Mi primer pensamiento es que puede estar usando involuntariamente th e "propiedad android: secondaryProgress".

Aparte de esto, si se está ejecutando esto en un hilo independiente, asegúrese de que está utilizando la siguiente:

activity.runOnUiThread(new Runnable() // 
      { 
       public void run() // 
       { 
        int newProgressVal = Integer 
          .parseInt((String) syncProgressNumber.getText()) + 1; 
        syncProgress.incrementProgressBy(1); 
        syncProgressNumber.setText(String 
          .valueOf(newProgressVal)); 
       } 
      }); 

El hilo de interfaz de usuario no se threadsafe, por lo que no se puede actualizar la interfaz de usuario de otros hilos.

Espero que esto ayude!

Cuestiones relacionadas