2010-08-10 1 views
10

Я хочу, чтобы элементы в списке отображались в одном порядке слева направо. У меня есть следующие в Рез/Аним/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

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

+0

интересно, ваш код отлично подходит для меня. –

ответ

28

У меня была такая же проблема, и я, кажется, чтобы решить это. Я думаю, что эта проблема похожа на эту проблему: 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!

3

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

Сделайте еще один Android-xml в папке ур-афера. Пусть это будет 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);