#android #android-layout
#Android #android-layout
Вопрос:
У меня есть макет с панелью прогресса (на самом деле это панель поиска, но та же проблема возникает с панелью прогресса). Это работает нормально, пока я не начну анимировать весь макет, переводя его вниз. Во время анимации панель прогресса продолжает работать должным образом, но когда анимация завершена (и я замораживаю макет в конечной позиции анимации с помощью Animation.setFillAfter(true)), панель прогресса перестает обновляться корректно, вместо этого просто небольшая строка в верхней части панели продолжает обновляться, в то время как нижняя часть панели прогресса остается замороженной (это горизонтальная панель прогресса).
Некоторый код: Макет с панелью прогресса:
<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"
/>
Вот где я определяю анимацию:
Animation a = AnimationUtils.loadAnimation(this, R.anim.translate_down);
a.setFillAfter(true);
Здесь я запускаю анимацию для всего макета:
View vv = p.findViewById(R.id.video_buttons);
vv.startAnimation(anim);
Комментарии:
1. Недостаточно кода. Вы должны опубликовать полный тестовый пример.
Ответ №1:
Моя первая мысль заключается в том, что вы, возможно, непреднамеренно используете свойство «android:secondaryProgress».
Помимо этого, если вы запускаете это в отдельном потоке, убедитесь, что вы используете следующее:
activity.runOnUiThread(new Runnable() //
{
public void run() //
{
int newProgressVal = Integer
.parseInt((String) syncProgressNumber.getText()) 1;
syncProgress.incrementProgressBy(1);
syncProgressNumber.setText(String
.valueOf(newProgressVal));
}
});
Поток пользовательского интерфейса не является потокобезопасным, поэтому вы не можете обновлять пользовательский интерфейс из других потоков.
Надеюсь, это поможет!