What's the difference between ViewFlipper and ViewSwitcher

Android

Android Problem Overview


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?

Android Solutions


Solution 1 - Android

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.

Solution 2 - Android

ViewFlipper supports more than two views, ViewSwitcher only supports 2.

Solution 3 - Android

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.

Solution 4 - Android

ViewFlipper is allowed in app widgets, while ViewSwitcher is not.

https://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser412759View Question on Stackoverflow
Solution 1 - AndroidalexanderjslinView Answer on Stackoverflow
Solution 2 - AndroidEvan R.View Answer on Stackoverflow
Solution 3 - AndroiddigitalWestieView Answer on Stackoverflow
Solution 4 - AndroidTalkLittleView Answer on Stackoverflow