ScrollView和ListView之间的区别

时间:2012-03-22 10:43:15

标签: android android-listview android-scrollview

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

6 个答案:

答案 0 :(得分:25)

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

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

简单的ScrollView适用于同类和异构集合。 ListView仅用于同类集合。

答案 1 :(得分:24)

他们完全不同。

ScrollView 是一个简单的滚动容器,您可以使用它来滚动放入其中的任何内容,这可能是项目列表,也可能不是。

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

ListView 非常专门用于保存列表,其中项目通常看起来相同(或至少遵循模式,例如章节标题)。 ListView还可以连接到某种数据源,SQLite,数组,内容提供者等.ListView可以扩展以处理大量的列表项。

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

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

答案 2 :(得分:2)

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

ListView是一个使用适配器来处理数据对象创建视图的类,您只需要编辑数据,并且适配器会自动完成布局修改。

当您有一个不适合小型设备上的一个屏幕的屏幕(例如:具有多个字段的表单)时,应该使用ScrollView,因此scrollview为用户提供了向下滚动的可能性。

表示数据集时应使用ListView。

您可以在http://developer.android.com/guide/index.html

了解这些内容

答案 3 :(得分:2)

ListView: -

在ListView中您可以轻松管理要在列表中显示的xml项目布局。

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

您可以通过覆盖适配器的getItemViewType()方法,根据您的要求设计同构视图和异构视图。

在ListView中,列表中的项目是根据屏幕大小创建的。即,在运行时滚动列表时,将创建在屏幕上显示的项目数。显示一次的视图在移出屏幕时被缓存,当列表滚动回到先前状态时,显示相同的视图,但不创建此时间视图,而是从缓存中获取它们。

ScrollView: -

缓存概念不适用于ScrollView。

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

虽然您可以同时创建同质和异质视图。如果要在列表中显示更多项目,无论是使用xml进行设计还是使用Java代码动态创建,管理布局都会非常繁琐。

如果您有一个不包含项目列表的页面,例如注册表单,预订表单但该视图大于屏幕大小,则最好使用scrollview,然后将ScrollView作为父视图放置,同时请记住ScrollView可以只有一个直接的子布局/视图。

答案 4 :(得分:0)

ListView由适配器支持,该适配器包含一个DataSource。这使您可以轻松地按行显示数据。

ScrollView允许您将内容放入其中,如果内容超出ScrollView的大小,它将允许用户滚动。

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

答案 5 :(得分:0)

由于一张价值千言万语的图片,这里有完美的现实生活例子:

Listview就像 Kijiji 应用

Scrollview就像 EBay 应用

此外,请参阅滚动视图,如广告牌或墙壁,您可以在其上放置一堆不同的东西。

listview更像是一个结果页面:结果具有相同的性质,因此它们非常适合列表视图。像联系人列表:它们都共享相同的结构;电话号码姓名地址等....