AnimationUtils не анимирует 1 из моих пользовательских видов

У меня есть пользовательское представление с именем CardSlot, которое является частью макета, который я использую дважды в макете, примерно:

<LinearLayout>
    <PlayerLayout 4 CardSlots defined... />   #Layout1
    <LinearLayout 2 CardSlots defined/>
    <PlayerLayout 4 CardSlots defined.../>       #layout2
</LinearLayout>

Карта WarSlot изначально невидима. Я называю анимацию так:

GameFragment:

public void onEvent(GameMsg msg) {
    switch (msg) {
        case XXX:
            for (int idx = playerLayouts.length-1; idx >= 0; idx--) {
                playerLayouts[idx].animateWarCard(AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_in));
            }
            break;
    }
}

PlayerLayout:

public void animateWarCard(Animation animation) {//TODO why no show for layout2???
    Log.v(TAG, "animate?  " + mdata.player.getClass().getSimpleName());
    cardSlots[WARSLOT].setAnimation(animation);
    animation.setStartTime(3500);
    animation.setDuration(3500);
    animation.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {
            Log.v(TAG, "onAnimationStart " + animation);
        }

        @Override
        public void onAnimationEnd(Animation animation) {
            Log.v(TAG, "onAnimationEnd " + animation);
            cardSlots[WARSLOT].setVisibility(View.VISIBLE);
        }

        @Override
        public void onAnimationRepeat(Animation animation) {
        }
    });
    animation.startNow();
    Log.v(TAG, "started?");
}

Теперь анимация для layout1 работает нормально, но не запускается для layout2 (ни одно из сообщений журнала слушателя не отображается). Даже если я просто вызываю layout2 и пропускаю layout1, это не работает. Там нет ошибок или исключений, которые я вижу в журнале, даже нефильтрованные.

Любые идеи о том, что я должен искать или другой способ сделать звонки?

0 ответов

Другие вопросы по тегам