ListView控件或TableLayout?(ListView or TableLayout?)

2019-06-27 11:22发布

我现在真的困惑,哪一个学习。 我是一个iPhone应用程序开发者,现在学习Android开发。

我已经学会了如何使用ListView使用的字符串的静态数组Adapter 。 我习惯使用定制单元在iPhone,多为显示像图像和文本的动态内容TableView秒。

因此,这是去干什么,在Android的方式? TableLayoutListView

Answer 1:

正如其他人的评论中已经说过,你要明确界定,使得在其上使用的布局类型,具体的决定之前,你首先要做些什么。 不过,我可以肯定明白,从试图决定在布局类的类型使用它产生混乱,因为经常有几个可供选择来达到同样的目的。 例如,创建项目的垂直滚动列表,你可能先选择一个垂直LinearLayout ,你会再放置一个内ScrollView 。 但在另一方面,来实现类似的最终结果,你可以使用一个ListView一起用合适的Adapter

同样,表明可垂直滚动,你可以使用一个项目的网格TableLayout一个内ScrollView 。 或者,类似的结果可以从使用来实现GridView ,再通过合适的供给数据Adapter

现在,第一个关键区别是这样的:像类LinearLayoutTableLayout要求您提供子元素无论是在XML布局或可替代编程代码。 像类ListViewGridView (和其他几个人)有很大的不同,因为它们的子类android.widget.AdapterView 。 有关的特别之处AdapterView类是一个Adapter用于将数据绑定到他们。 所以,回到垂直项目列表的例子,如果你出一组内部子列表项LinearLayout基于一些阵列中的数据,你就必须以编程方式创建并添加子View s转换是LinearLayout基于阵列数据。 与ListView另一方面,各个View表示中的子项s的由合适的供给Adapter 。 因此,而不是编程方式与所有子项中填写的布局(如将与案件LinearLayoutTableLayout例如),一个Adapter为基础的布局,而不是调用Adapter来获得孩子View S作为当它需要他们。

这最后一点,我相信你应该明白对未来关键的区别Adapter基于布局:他们是在显示大量数据,在许多数据被滚出视情况更为有效。 例如, ListView是更有效地使用用于显示项目的大型滚动列表比是,如果你简单地填充的LinearLayout的所有项目,并把它放在里面ScrollView 。 这样做的原因效率是AdapterView为基础的布局通常不包含所有子View一切都在一次。 取而代之的是,通过列表中的用户滚动,现有的子视图是“再生”或“转化的”,由Adapter来显示下一个子元素。 为了用一个例子说明这一点:你要的100个项目滚动垂直列表。 屏幕可仅足够大以一次显示7,但是。 想象一下,你使用LinearLayout一个内ScrollView显示100个列表项。 这意味着LinearLayout容器有100点孩子Views 。 那些孩子总是出现在布局和需要由系统中滚动事件进行处理,即使只有七可以在同一时间是在屏幕上查看。 这需要额外的CPU时间,大量的RAM,并且滚动可呆滞。 现在,随着ListView ,布局将只可能只包含7或8个孩子View秒。 当用户滚动,这些子View s的动态转换或重新实例化的Adapter ,通过它您绑定您的数据。 用户将体验更快,更流畅的滚动操作。 从编程的角度来看,它通常是远更优雅通过结合数据列表Adapter 。 当你处理滚动列表或网格Bitmap S,一个存储空间的限制Android设备也意味着使用的AdapterView是非常必要的。

请记住,在回答这个时候,我做了你要显示垂直项目或表格清单是滚动的,可能包括假设Bitmap s和我集中布局的类型,你” D使用实现的布局和数据的滚动。 布局类一样LinearLayoutTableLayout然而,等等,你将用所有的时间来形成单独的布局构建块的应用是很重要的类。 如果你的整个列表是保证以适应屏幕并不会滚动,然后使用一个额外的复杂性Adapter (不,这真的那么复杂)可能是没有意义的,那么你可能只是想用一个TableLayout或任何。



Answer 2:

而Android相当于iOS的UITableViewRecyclerView

这是非常强大的,可充满了来自根据类型不同来源的数据适配器你重视它。 你可能想看看这个RecyclerView代码实验室 。



Answer 3:

1.如果您想dynamic dataCUSTOM VIEW以列表的形式,然后ListViewBaseAdapterArrayAdapter是要走的路.....

2. TableLayout将是完全不同的用途 ,主要是我用它用于示出这是需要被显示在堆栈形式数据..(即一个在另一个之上....)

请参阅快速理解和执行这些链接如下:

http://www.ezzylearning.com/tutorial.aspx?tid=1763429

http://www.vogella.com/articles/AndroidListView/article.html



文章来源: ListView or TableLayout?