Listview и анимация - PullRequest
       25

Listview и анимация

1 голос
/ 15 апреля 2011

Я использую анимацию просмотра списка из API DEMOS, пример 2. Вот фрагмент из метода OnCreate:

ListView listview = (ListView) findViewById(android.R.id.list);

AnimationSet set = new AnimationSet(true);
Animation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setDuration(50);
set.addAnimation(animation);

animation = new TranslateAnimation(
    Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f,
    Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF, 0.0f);

animation.setDuration(200);
set.addAnimation(animation);

LayoutAnimationController controller = new LayoutAnimationController(set, 0.5f);
listview.setLayoutAnimation(controller);

В какой-то момент в будущем notifyDataSetInvalidated() вызывается для адаптера списка, и мойсписок обновляется.но элементы больше не отображаются в анимации.

Пожалуйста, помогите.

Ответы [ 2 ]

3 голосов
/ 16 июня 2011

Если вы хотите реанимировать свой LayoutController после изменения набора данных, вызовите метод startLayoutAnimation () представления.

0 голосов
/ 15 апреля 2011

Вы должны проверить эту тему о разнице между notifyDataSetChanged () и notifyDataSetInvalidated () (ссылка обновлена, чтобы указывать на ответ Ромена Гая!)

Короче разница:

  • notifyDataSetChanged: элементы в наборе данных изменены (добавлены / удалены / обновлены / переупорядочены, что угодно).
  • notifyDataSetInvalidated: источник данных адаптера больше недоступен.

Здесь вы можете найти рабочий образец с функцией notifyDataSetInvalidated. Вероятно, это поможет решить проблему с анимацией.

...