В чем разница между ViewFlipper и ViewSwitcher

89

Они оба наследуют ViewAnimator. Я знаю, что это ViewSwitcherпозволяет только два представления, а ViewFlipperпозволяет больше. Но зачем создал Android ViewSwitcher, если он всего лишь ViewFlipperс двумя видами? Есть еще отличия? При каких условиях будет использовать один старший, чем другой?

user412759
источник

Ответы:

84

Насколько я могу судить, ViewSwitcher используется, если вы хотите переключаться между двумя представлениями, как вы сказали. Полезно, если у вас есть 2 просмотра, которые вам нужно довольно регулярно просматривать. И класс реализует ViewFactory, если вы хотите его использовать.

Однако ViewFlipper можно использовать, если вы хотите периодически менять представления. Скажем, как будто автоматическое листание какой-то книги. Хотя галерея нестандартных адаптеров в этом намного лучше.

И да, вот и все. Они действительно не намного полезнее, чем ViewAnimator. Почему разработка под Android что-то делает, для меня действительно загадка.

Обычно я бы предпочел использовать ViewAnimator, потому что он дает вам больше свободы и, следовательно, гибкость в дизайне. Но если вам нужны такие функции, как ViewFactory, и у вас есть только 2 представления, используйте ViewSwitcher. Если вы хотите иметь возможность периодически менять представления, используйте ViewFlipper. Если вам ничего не нужно, используйте ViewAnimator.

Александр
источник
Реализовав флиппер представления, который содержит примерно 10 пользовательских представлений, в основном текст, и ожидая 5 секунд для первой загрузки, я думаю, что преимущество фабрики представлений состоит в более быстрой инициализации. Я также получаю медленный отклик на кнопки вперед и назад. Что-то не так с ViewAnimator, не знаю, почему это должно занять так много времени. Я буду профилировать его с помощью traceview позже на этой неделе и опубликую то, что узнал.
Уильям Т. Маллард
@ WilliamT.Mallard Это 2020 год.
Митч,
13

ViewFlipper поддерживает более двух представлений, ViewSwitcher поддерживает только 2.

Эван Р.
источник
36
Разве это не вопрос :)
paweloque
7

Я не уверен, есть ли между ними какие-то большие различия, но из того, что я понял, разница в том, что ViewSwitcher используется в обстоятельствах, когда представление такое же, но данные разные - например, в приложении календаря - мы просто изменение данных в представлении.

digitalWestie
источник