任何人都可以解释滚动视图和列表视图之间的区别吗?什么时候使用哪一个?哪一个更有效率?
答案 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。
了解这些内容答案 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更像是一个结果页面:结果具有相同的性质,因此它们非常适合列表视图。像联系人列表:它们都共享相同的结构;电话号码姓名地址等....