ScrollView和ListView之间的区别

任何人都可以解释滚动视图和列表视图之间的区别吗? 何时使用哪一个? 哪一个更有效率?

Solutions Collecting From Web of "ScrollView和ListView之间的区别"

ScrollView用于放置不同的或相同的子视图或布局,并且全部可以滚动。

ListView用于将相同的子视图或布局设置为多个项目。 所有这些项目也滚动。

简单的ScrollView适用于同类和异类的收集。 ListView仅用于同类collections。

他们完全不同。

一个ScrollView是一个简单的滚动容器,你可以用它来滚动你放在里面的东西,这可能是一个项目列表,或者它可能不是。

http://developer.android.com/reference/android/widget/ScrollView.html

一个ListView是专门devise来保存列表,其中项目通常看起来相同(或至less遵循一个模式,例如节标题)。 ListView也被devise为连接到某种types的数据源,SQLite,数组,内容提供者等。ListView可以扩展以处理大量的列表项。

http://developer.android.com/resources/tutorials/views/hello-listview.html

如果您需要在列表中显示数据,请使用ListView。 如果你只需要滚动内容,那么ScrollView是足够的。

ScrollView只是把它的内容放在一个可滚动的容器中,你只能通过添加视图来编辑它的内容。

ListView是一个类,它使用一个适配器来处理为你的数据对象创build视图,你只需要编辑数据,而布局的修改是由适配器自动完成的。

当你有一个屏幕(例如:一个有多个字段的表单)时,应该使用ScrollView,它们不适合小设备上的一个屏幕,因为这样的滚动视图可以让用户向下滚动。

应该在表示数据集时使用ListView。

你可以在http://developer.android.com/guide/index.html上阅读这些内容

一个ListView由一个Adapter包含一个DataSource支持。 这使您可以轻松地显示行中的数据。

ScrollView允许你把内容放在里面,如果内容超过了ScrollView的大小,它将允许用户滚动。

他们都有他们的用途,但这取决于你想要做什么。

由于一张图片胜过千言万语,下面是完美的现实生活中的例子:

Listview就像Kijiji应用程序

滚动查看就像eBay应用程序

另外,看到像广告牌或墙上的滚动视图,在那里你可以把一堆不同的东西放在上面。

而listview更像是一个结果页面:结果都是一样的性质,因此它们完全适合在一个列表视图。 就像一个联系人列表 :他们都有相同的结构; 电话号码名称地址等…

列表显示:-

在ListView中你可以很容易地pipe理你想在列表中显示的项目的布局。

您需要在显示列表中告诉适配器多个项目。

您可以根据您的要求,通过改写Adapter的getItemViewType()方法来devise同构视图和异构视图。

ListView中的项目是根据屏幕大小创build的。 即,可以在屏幕上显示多less项目,当列表在运行时滚动时,创build附加视图(项目)。 显示一次的视图在移出屏幕时被caching,当列表滚动回到之前的状态时,将显示相同的视图,但是不会创build这个时间视图,而是从caching中获取视图。

ScrollView: –

高速caching概念不适用于ScrollView。

所有视图在屏幕上时立即创build,在滚动时移出屏幕时不会被caching。 它们存在于内存中(主要),可能导致内存泄漏,因为创build的对象数量不会被垃圾收集器破坏,因为它们被引用,直到您在同一页面上。

尽pipe您可以创build同构和异构视图。 如果在列表中显示更多项目,则无论您是使用xml进行devise还是使用Java代码dynamic创build,pipe理布局都会非常繁琐。

最好是使用滚动视图,如果你有一个不包含项目列表的单个页面,例如registry单,预订表单,但是该视图大于屏幕大小,则将ScrollView作为父视图也要记住,ScrollView只能有一个直接的孩子布局/视图。