Android应用中的GridView VS GridLayout

Lak*_*tla 203 grid android grid-layout android-gridview

我必须使用网格在Android中实现Photo Browser,我想知道GridView和GridLayout之间区别.

我正在使用GridView动态显示图像.

Ben*_*oli 254

GridView的是显示在二维滚动栅格项的ViewGroup.网格中的项目来自与此视图关联的ListAdapter.

这是你想要使用的(继续使用).因为GridView从ListAdapter获取其数据,所以内存中加载的唯一数据将是屏幕上显示的数据.GridViews,就像ListViews重用并回收它们的视图以获得更好的性能.

GridLayout是一种将其子项放在矩形网格中的布局.

它在API级别14中引入,最近在支持库中向后移植.其主要目的是解决其他布局中的对齐和性能问题.如果您想了解有关GridLayout的更多信息,请查看本教程.

  • @laki场景一:绘制计算器,GridLayout.场景二:绘制一个图库,GridView. (49认同)
  • 我从来没有说过不是.我只是强调这是一个布局. (19认同)
  • @laki的一个场景是,如果你想在网格形状中加载一堆图像.使用GridView只会在内存中加载屏幕上可见的视图.然而,如果您使用GridLayout,则必须加载将在任何时间显示的所有图像,从而导致大多数设备出现内存错误. (15认同)
  • GridLayout也是一个ViewGroup. (14认同)
  • 基本差异似乎是GridView只能在整个过程中容纳统一的列宽.网格布局允许您拥有跨越2列或更多列的内容.网格布局允许您设计具有跨越不同列大小的内容的屏幕 (14认同)
  • @ BigBen3216如果使用ContentResolver查询本地数据存储,并使用BitmapFactory和inSampleSize扩展位图,则不会出现OutOfMemoryError. (3认同)
  • @Akito,问题不是“在 Android 上显示滚动网格的最佳方式是什么”。它特别询问了 GridView 和 GridLayout 之间的区别。 (3认同)
  • 小额外:(好的)适配器将加载比当前在屏幕上显示的更多一点,以便能够在用户滚动/移动到新的相邻内容时提供该内容. (2认同)