They both inherit
ViewAnimator. I know that
ViewSwitcher allows only two views, while
ViewFlipper allows more. But why did Android create
ViewSwitcher, if it is just a
ViewFlipper with 2 views? Are there any other differences? On what condition will be using the one superior than the other?
From what I can tell, ViewSwitcher is used if you want to switch between two views like you said. Useful if you have 2 views that you have to go back and forth fairly regularly. And the class implements a ViewFactory if you wish to use it.
However, ViewFlipper can be used if you want to periodically change the views. Say like an automated flipping book of some sort. Though a custom-adapter gallery is much better at this.
And yep, that’s all. They really aren’t that much more useful than the ViewAnimator. Why Android development makes anything is really a mystery to me.
I would normally just prefer using a ViewAnimator because it gives you more freedom and thus flexibility in how you design. But if you want features like the ViewFactory and you only got 2 views use the ViewSwitcher. If you want to be able to periodically change views use ViewFlipper. If you don’t need either use a ViewAnimator.
ViewFlipper supports more than two views, ViewSwitcher only supports 2.
I’m not sure if there’s any big differences between them but from what I’ve gathered the difference is that ViewSwitcher is used in circumstances where the view is the same but the data is different – like on a calendar app – we’re just changing the data in the view.
ViewFlipper is allowed in app widgets, while ViewSwitcher is not.