Я могу помочь вам с этим, я думаю, что это можно сделать изначально, но это мой первый подход, и мы можем go оттуда:
- как макет, вам нужно иметь 2 Обзоры переработчиков со списком алфавитов, один справа и другой слева, начиная с альфа 0.
- , когда начинается действие, вы анимируете альфа обоих обзоров переработчика от 0 до 1.
- часть сокрытие, которое скрывает оба элемента переработчика, представляет собой градиентный фон с цветами, переходящими от purewhite #ffffff к полной прозрачности # 00ffffff
- у вас есть 2 вида с градиентным фоном, упомянутым выше, с противоположным углом поворота из-за противоположных направлений (один снизу) вверх, а другой сверху вниз).
- подготовить один и тот же адаптер с одинаковым списком алфавитов от A до R, назначить их обоим представлениям переработчика и установить один для запуска с индексом A и другой с индексом R
- теперь использует плавную прокрутку в обоих обзорах, один для прокрутки до последнего элемента и другой, чтобы перейти к первому элементу, и вы можете установить скорость плавной прокрутки, чтобы быть быстрее, чем обычно, если вы чувствовали, что это необходимо.
- После завершения прокрутки найдите элемент адаптера в выбранной позиции окна просмотра и используйте слушатель обновления со значением animator и ArgbEvaluator из черного цвета в белый и для цвета текста в текущем значении onAnimationUpdate (ValueAnimator animation) animation.getAnimatedValue ().
- В то же время используйте тот же процесс, что и выше, чтобы изменить цвет фона родительского макета с белого на черный.