Qual é a diferença entre ViewFlipper e ViewSwitcher

88

Ambos herdam ViewAnimator. Eu sei que ViewSwitcherpermite apenas duas visualizações, enquanto ViewFlipperpermite mais. Mas por que o Android criou ViewSwitcher, se é apenas um ViewFlippercom 2 visualizações? Há outras diferenças lá? Em que condição estará usando um superior que o outro?

user412759
fonte

Respostas:

82

Pelo que eu posso dizer, ViewSwitcher é usado se você quiser alternar entre duas visualizações, como você disse. Útil se você tiver 2 visualizações que precisa ir e voltar regularmente. E a classe implementa um ViewFactory se você quiser usá-lo.

No entanto, ViewFlipper pode ser usado se você quiser alterar periodicamente as visualizações. Diga como um livro automático de algum tipo. Embora uma galeria de adaptadores personalizados seja muito melhor nisso.

E sim, isso é tudo. Eles realmente não são muito mais úteis do que o ViewAnimator. Por que o desenvolvimento do Android faz alguma coisa é realmente um mistério para mim.

Eu normalmente preferiria usar um ViewAnimator porque ele dá a você mais liberdade e, portanto, flexibilidade em como você projeta. Mas se você quiser recursos como o ViewFactory e tiver apenas 2 visualizações, use o ViewSwitcher. Se você deseja alterar periodicamente as visualizações, use o ViewFlipper. Se você não precisa usar um ViewAnimator.

alexanderjslin
fonte
Tendo implementado um view flipper que contém aproximadamente 10 views customizados principalmente de texto e esperando 5 segundos pelo primeiro carregamento, estou pensando que o benefício de uma view factory é tornar a inicialização mais rápida. Também estou obtendo uma resposta lenta nos botões de avançar e voltar. Há algo errado com o ViewAnimator, não sei por que deveria demorar tanto. Estarei fazendo um perfil com o traceview no final desta semana e postarei de volta com o que descobri.
William T. Mallard
@ WilliamT.Mallard É 2020.
Mitch
13

ViewFlipper suporta mais de duas visualizações, ViewSwitcher suporta apenas 2.

Evan R.
fonte
35
Não era essa a questão :)
paweloque
7

Não tenho certeza se há grandes diferenças entre eles, mas pelo que percebi, a diferença é que o ViewSwitcher é usado em circunstâncias em que a visualização é a mesma, mas os dados são diferentes - como em um aplicativo de calendário - estamos apenas alterando os dados na visualização.

digitalWestie
fonte