Android ListView还是TableLayout?
我现在真的不知道该学哪一个。我是一名iPhone应用程序开发人员,现在正在学习Android开发 我已经学会了如何使用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中使用自定义单元格,主要用于在TableView
s中显示图像和文本等动态内容
那么,在安卓系统中实现这一点的方法是什么呢TableLayout
或ListView
?相当于iOSUITableView
的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