Возникли проблемы с анимацией макета списка - PullRequest
13 голосов
/ 10 августа 2010

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

Что я делаю не так?

Ответы [ 2 ]

34 голосов
/ 28 декабря 2010

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

"

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

Чао!

5 голосов
/ 26 августа 2010

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

Создайте еще один Android xml в папке 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); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...