Android ListView还是TableLayout?

Android ListView还是TableLayout?,android,android-listview,android-adapter,android-tablelayout,custom-cell,Android,Android Listview,Android Adapter,Android Tablelayout,Custom Cell,我现在真的不知道该学哪一个。我是一名iPhone应用程序开发人员,现在正在学习Android开发 我已经学会了如何使用适配器将列表视图与静态字符串数组一起使用。我习惯于在iPhone中使用自定义单元格,主要用于在TableViews中显示图像和文本等动态内容 那么,在安卓系统中实现这一点的方法是什么呢TableLayout或ListView?相当于iOSUITableView的Android是RecyclerView 它非常强大,可以根据您附加到它的类型,使用来自不同来源的数据填充。您可能想看看

我现在真的不知道该学哪一个。我是一名iPhone应用程序开发人员,现在正在学习Android开发

我已经学会了如何使用
适配器将
列表视图
与静态字符串数组一起使用。我习惯于在iPhone中使用自定义单元格,主要用于在
TableView
s中显示图像和文本等动态内容


那么,在安卓系统中实现这一点的方法是什么呢
TableLayout
ListView

相当于iOS
UITableView
的Android是
RecyclerView


它非常强大,可以根据您附加到它的类型,使用来自不同来源的数据填充。您可能想看看这一点。

1。如果您想在
自定义视图上以列表形式显示
动态数据
,那么使用
基本适配器
阵列适配器
可以

2.
TableLayout
将具有完全不同的用途,我主要使用它来显示需要以堆栈形式显示的数据…(即一个叠加另一个…)

请查看以下链接以快速理解和实施:


正如其他人在评论中所说,在具体决定使用哪种类型的布局之前,您需要明确定义首先要做什么。然而,我当然可以理解在决定使用哪种类型的布局类时所产生的混乱,因为为了实现相同的目标,通常有几种布局类可供选择。例如,要创建项目的垂直滚动列表,首先可以选择垂直
线性布局
,然后将其放置在
滚动视图
中。但另一方面,为了获得类似的最终结果,可以使用
列表视图
和合适的
适配器

类似地,要显示可以垂直滚动的项目网格,可以在
滚动视图中使用
表格布局
。或者,通过使用
GridView
,同样通过合适的
适配器提供数据,也可以获得类似的结果

现在,第一个关键区别是:像
LinearLayout
TableLayout
这样的类要求您在XML布局中或以编程方式在代码中提供子元素。像
ListView
GridView
(以及其他一些)这样的类是非常不同的,因为它们是
android.widget.AdapterView
的子类。
AdapterView
类的特殊之处在于使用
Adapter
将数据绑定到它们。因此,回到项目垂直列表的示例,如果根据一些数组数据在
LinearLayout
中显示一组子列表项目,则必须根据数组数据以编程方式创建子
视图并将其添加到
LinearLayout
中。另一方面,使用
列表视图
,表示子项的单个
视图
由合适的
适配器提供。因此,基于
适配器的布局不是以编程方式用所有子项填充布局(例如
LinearLayout
TableLayout
),而是在需要时调用
适配器来获取子
视图

最后一点是我认为您应该了解的关于基于
适配器的布局的下一个关键区别:它们在显示大量数据时效率更高,在大多数数据被滚动到视图之外的情况下。例如,
列表视图
用于显示项目的大型滚动列表要比简单地用所有项目填充
线性布局
并将其放在
滚动视图
中要高效得多。这种效率的原因是基于
AdapterView
的布局通常不会同时包含所有子
视图。相反,当用户滚动列表时,
适配器将“回收”或“转换”现有子视图,以显示下一个子元素。用一个例子来说明这一点:您需要一个包含100个项目的滚动垂直列表。但是,屏幕可能只够一次显示7。假设您在
滚动视图中使用
LinearLayout
来显示100个列表项。这意味着
LinearLayout
容器有100个子
视图
。这些子项始终存在于布局中,并且需要在滚动事件期间由系统进行处理,即使一次屏幕上只能看到七个。这需要额外的CPU时间、大量的RAM,而且滚动可能很慢。现在,使用
列表视图
,布局可能只包含7或8个子
视图
s。当用户滚动时,这些子视图将由绑定数据的适配器动态转换或重新实例化。用户将体验到更快、更平滑的滚动操作。从编程的角度来看,通过
适配器绑定数据列表通常要优雅得多。当您处理
位图的滚动列表或网格时,
Android
设备的内存限制也意味着使用
AdapterView
是非常必要的

请记住,在回答这个问题时,我假设您试图显示可滚动的项目的垂直或表格列表,可能包括
位图
s,我将重点介绍用于实现该数据的布局和滚动的布局类型。布局类,如
LinearLayout
TableLayout