Проблемы с анимацией макета списка

Я хочу, чтобы элементы в списке отображались по одному за раз слева направо. У меня есть следующее в res/anim/slide_right.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
    <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="150" />
</set>

И в моем методе onCreate в моей ListActivity у меня есть:

LayoutAnimationController controller = AnimationUtils.loadLayoutAnimation(this, R.anim.slide_right);
mList.setLayoutAnimation(controller);

Когда я запускаю его, я получаю RuntimeException, вызванный Unknown layout animation name: set

Что я делаю неправильно?

Ответ 1

У меня была такая же проблема, и я, похоже, ее решил. Я думаю, что эта проблема аналогична этой: http://groups.google.com/group/android-developers/browse_thread/thread/2266e171b9b0cf17

Я также разместил там свой ответ (с некоторыми изменениями). Вам нужно будет определить второй XML файл, в котором есть элемент layoutAnimation:

"Если вы хотите применить анимацию с помощью android: layoutAnimation (или используя loadLayoutAnimation), кажется, вам нужно определить дополнительный XML файл, который ссылается на вашу анимацию (масштаб, набор, перевод и т.д.). Вы можете найти здесь пример: http://developerlife.com/tutorials/?p=343.

Например, ваш второй XML файл будет выглядеть следующим образом (позвоните ему example.xml):

<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" 
    android:delay="10%"
    android:animation="@anim/slide_right"
/>

Затем вы можете ссылаться на эту анимацию в вашем файле макета:

android:layoutAnimation="@anim/example"

(или в вашем коде с использованием loadLayoutAnimation)

"

Надеюсь, это поможет.

Ciao!

Ответ 2

Я не уверен, что вы уже нашли одушевленность, но позвольте мне рассказать вам, как я нашел решение.

Сделайте еще один Android xml в папке ur anim. Пусть это будет list_layout_controller.xml, как показано ниже

<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
        android:delay="20%"
        android:animationOrder="normal"
        android:animation="@anim/slide_right">
</layoutAnimation>

Теперь установите list_layout_controller.xml(используя нотацию @anim) в качестве анимации, как показано ниже, и запустите:

LayoutAnimationController controller = AnimationUtils.loadLayoutAnimation(this, R.anim.list_layout_controller); 
mList.setLayoutAnimation(controller);