网格布局与 表格布局

lea*_*drd 36 android grid-layout tablelayout

我正在研究预订引擎Android应用程序,如航空公司预订系统.要获取特定于乘客搜索的所有可用航空公司的内容,然后将其显示在移动设备的屏幕上.

考虑到屏幕加载时间,系统内存消耗和其他功能,哪一个,表格布局或网格布局会有效?

hac*_*bod 33

**编辑:写这个答案时这行是正确的,但不再适用于所有Android设备的99.9%以上:There is no GridLayout in the Android API.**

(注意:从API级别14开始,最终会有GridLayout;请参阅下面的答案.此外,V7支持库将GridLayout支持添加到API 7.但是,这个答案对GridView的描述仍然准确且说得很清楚.)

如果你的意思是GridView,TableLayout和GridView是完全不同的东西.

GridView基本上类似于ListView,但其项目按严格网格排列.它附加到适配器,并在用户滚动它时从适配器检索视图.网格中的所有元素必须大小相同.用户可以通过每个项目移动可见选择器 - GridLayout的目标是显示来自适配器的数据,并让用户导航并选择每个显示的项目.与ListView的唯一区别是项目放在网格中而不是垂直列表中.

TableLayout只是一个布局管理器,有点像HTML中的表.它本身不会滚动; 有滚动的东西你必须将TableLayout放在ScrollView中.这意味着您显示的所有数据必须预先填充到TableLayout中,因此ScrollView知道要滚动的总空间.它也不会直接为您提供每个"项目"选择或交互,因为TableLayout没有项目,它只是一个布局管理器.

您实际上并未提供足够有用的信息,说明您实际上要为任何人推荐使用的内容.这在很大程度上取决于你想要的具体内容.

我的意思是"附加功能"会有用吗?!?那么你在寻找什么功能!

无论如何,作为一般规则,基于适配器的视图应该用于您拥有大量用户滚动视图的数据的任何情况; 这些比预先创建整个视图层次结构以显示数据要高效得多.它们也是唯一自动提供每个项目选择和其他此类功能的人.应用程序使用的主要视图是ListView,但也可以使用GridView.

  • 自**API Level 14**(Ice Cream Sandwich)以来,有一个[GridLayout](http://developer.android.com/reference/android/widget/GridLayout.html). (76认同)
  • API LEVEL 14支持网格布局和空间布局.请参阅此链接http://android-developers.blogspot.in/2011/11/new-layout-widgets-space-and-gridlayout.html (7认同)
  • V7(API Level 7 - 2.1)android支持库有GridLayout. (5认同)

and*_*per 21

从android 4.0开始,就像GridLayout这样的东西.GridLayout始终优于TableLayout.它提供了TableLayout上已有的所有功能,也可以替换其他布局.

它似乎很酷,似乎谷歌希望它像LinearLayout一样受欢迎(根据他们的Android 4.0视频).


编辑:如果你必须显示很多项目,考虑使用RecyclerView与GridLayoutManager.这有助于内存和CPU使用.


Muh*_*eeb 10

TableLayout配置通常很容易适应,因为GridLayout支持行和列跨越.可以删除TableRows,因为GridLayout不需要它们.对于相同的UI,GridLayout通常比TableLayout更快并且占用更少的内存.

所有Android版本都支持TableLayout,而GridLayout需要11级(Android ICS 4.0)或更高版本,但可以通过支持librarry v7轻松添加,以支持7级(Android 2.1)或更高版本


Kri*_*hna -3

我认为 TableLayout 会更容易使用。对于 GridLayout,您需要构建自定义适配器,这会导致应用程序更加复杂。

考虑到不同的场景尺寸,GridLayout会根据内容自行选择合适的列数和行数,并且在添加项目时会更加灵活。

此外,GridLayout 将会更加灵活,但还需要做更多的工作。

  • 给这个答案-1,因为它是完全错误的。GridLayout 不需要适配器...您正在考虑 GridView...以下是 GridLayout 的文档:https://developer.android.com/reference/android/widget/GridLayout.html (8认同)