2013-03-04 5 views
1

В моем пользовательском адаптере для моего listview, я добавил анимацию, как это:getView вызывается при прокрутке.

 View lastAddedItem = parent.getChildAt(0); 
     if(lastAddedItem != null) { 
      Animation a = AnimationUtils.loadAnimation(c, R.anim.push); 
      lastAddedItem.startAnimation(a); 
     } 

Этот код применяется к анимации 0'th элементу в списке. Эта анимация применяется при прокрутке списка, конечно же, список должен быть отображен еще раз, когда прокручивается, но есть ли что-то, что я могу предотвратить? Помните, имейте в виду, что этот код находится в методе getView()

Спасибо большое!

+1

Есть ли причина, по которой вы не можете просто проверить, является ли 'position == 0'? – Geobits

+0

Хм, я не совсем уверен, что вы это понимаете? Для применения анимации я должен получить конкретный «Просмотр». Было бы здорово, если бы вы могли опубликовать пример. –

+0

Я не тестировал и не мог показаться наивным, но почему вы просто не добавляете логическое значение перед анимацией и не пропускаете его один раз? – Rigotti

ответ

0

Если вы хотите, чтобы он запускал анимацию на 0-м элементе, вы должны просто проверить переменную position, которая поставляется с getView(). Если это 0, запустите анимацию на прилагаемом View.

Редактировать: Добавил булевский флаг в комментариях.

boolean isFirstRun = true; 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    if(convertView == null) { 
     // init view 
     ... 
    } 
    // populate view 
    ... 

    if(position == 0 && isFirstRun) { 
     isFirstRun = false; 
     // do animation stuff to convertView 
     // this will be the 0th item 
     ... 
    } 
} 
+0

Спасибо за это. Анимация выглядит немного лучше, но первый элемент в списке будет иметь представление, когда я буду скручивать снизу вверх. И когда список не прокручивается, элементы будут анимироваться случайным образом. –

+2

О, я думал, что вы хотите, чтобы он запускался в любое время, когда вид был виден. Вы можете исправить это с помощью boolean. Одна секунда для обновления кода. – Geobits

+0

Я думаю, что мы неправильно поняли друг друга. Я пытаюсь оживить «Просмотр» только тогда, когда элемент добавлен. Не когда я просматриваю список. Спасибо за вашу помощь! –