Java - бесконечный цикл while с анимацией FadeIn и FadeOut

У меня есть требование показать текст в Recyclerview с анимацией FadeIn и FadeOut.

Ниже приведен динамический список, в котором необходимо зациклить бесконечные элементы, т.е. 1-2-3-1-2-3-1-2-3

List<String> mImageDesc = new List<String>();
mImageDesc.add("1");
mImageDesc.add("2");
mImageDesc.add("3");

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

final  Animation animationFadeIn = AnimationUtils.loadAnimation(mContext, R.anim.fade_in_animation);
        final Animation animationFadeOut = AnimationUtils.loadAnimation(mContext, R.anim.fade_out_animation);

        Animation.AnimationListener animListener = new Animation.AnimationListener(){

            // Required to change the image
            int i = 0;

            @Override
            public void onAnimationStart(Animation animation) {
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
            }

            @Override
            public void onAnimationEnd(Animation animation) {

                if (animation == animationFadeIn) {
                    // Start fade-out animation
                    mTxtImageDescription.startAnimation(animationFadeOut);
                } else if (animation == animationFadeOut) {
                    *while(mImageDesc.listIterator().hasNext()) {
                        System.out.println(mImageDesc.listIterator().next());
                        mTxtImageDescription.setText(mImageDesc.listIterator().next());
                        mTxtImageDescription.startAnimation(animationFadeIn);*
                    }
                }
            }
        };

        // Set listener to animation
        animationFadeIn.setAnimationListener(animListener);
        animationFadeOut.setAnimationListener(animListener);

        // Start fade-in animation
        mTxtImageDescription.setText(mImageDesc.get(0));
        mTxtImageDescription.startAnimation(animationFadeIn);

1 ответ

В последней строке вашего цикла while вы повторно запустили 'animationFadeIn', поэтому обратные вызовы 'animListener' будут вызываться вечно. Обратите внимание, что если во время повторения цикла вы имели бы 'StackruError'.

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