2010-08-22 197 views
81

它们都继承ViewAnimator。我知道ViewSwitcher只允许两个视图,而ViewFlipper允许更多。但为什么Android创建ViewSwitcher,如果它只是一个ViewFlipper有2个视图?还有其他的区别吗?在什么情况下使用一个优于另一个的?ViewFlipper和ViewSwitcher之间有什么区别

回答

76

从我所知道的情况来看,如果您想像您说的那样在两个视图之间切换,则使用ViewSwitcher。如果你有两个观点,你必须定期来回来,这很有用。如果你想使用它,这个类将实现一个ViewFactory。

但是,如果您想定期更改视图,则可以使用ViewFlipper。像是某种自动翻页书一样说。尽管定制适配器库在这方面要好得多。

而且,就是这样。它们并不比ViewAnimator更有用。为什么Android开发让我感到非常神秘。

我通常只是更喜欢使用ViewAnimator,因为它给了你更多的自由度,从而在你的设计方式上具有灵活性。但是如果你想要像ViewFactory这样的功能,并且只有2个视图,请使用ViewSwitcher。如果您希望能够定期更改视图,请使用ViewFlipper。如果你不需要使用ViewAnimator。

+0

当只有2个视图时,工厂有什么用? – Ali 2013-04-27 23:29:47

+0

实现了一个包含大约10个大部分文本的自定义视图,并等待5秒钟的第一次加载的视图鳍状肢,我认为视图工厂的好处是使初始化更快。我对前进和后退按钮的响应也很慢。 ViewAnimator出了问题,不知道为什么它需要这么长时间。我将在本周晚些时候使用traceview进行分析,并将以我学到的内容进行回溯。 – 2013-11-24 21:03:18

7

我不确定他们之间是否有任何大的差异,但从我所收集的不同之处在于,ViewSwitcher用于视图相同但数据不同的情况下 - 比如在日历应用程序中 - 我们只是改变视图中的数据。

15

ViewFlipper支持两个以上视图,ViewSwitcher仅支持2.

+30

是不是这个问题:) – paweloque 2013-01-09 09:50:57

+0

同上,因此投票下降 – ericn 2014-02-18 03:27:13

+0

@paweloque大声笑。 – 2015-12-06 11:29:52

相关问题