Имея риск поощрения преждевременной оптимизации, я решил проблему, очень похожую на эту (перелистывание набора потенциально десятков более или менее идентичных страниц), которая оказалась довольно приятной и которая могла бы решить вашу проблему, хотя и немного косвенно,
Основой моей техники было создание ViewFlipper
, содержащего одну дочернюю страницу.Когда пользователь нажимает «предыдущий» или «следующий», происходит следующее:
- Создание специального представления, которое «клонирует» изображение реального дочернего представления ViewFlipper.
- Добавитьклон View для ViewFlipper и установите его в качестве текущего дочернего элемента без какой-либо анимации.Пока что пользовательский интерфейс выглядит так, как будто ничего не изменилось.
- Обновите реальное дочернее представление (теперь скрытое клоном) текстом и изображениями и т. Д. Для переворачиваемой страницы.
- УстановитеТекущая страница ViewFlipper возвращается к реальному дочернему виду, на этот раз с хорошей анимацией.
Мне нужно было пройти лишнюю милю, потому что моя страница была очень сложной ... несколько списков, все виды кнопок,изображения и т. д. Было бы ужасно расточительно иметь 2 или 3 из них в моей иерархии представлений, не говоря уже о десятках.Описанная выше техника минимизирует сложность макета, и анимация перелистывания работает намного быстрее, если страница сложная.