【问题标题】:Different height for each item in GridView [closed]GridView中每个项目的不同高度[关闭]
【发布时间】:2012-05-22 06:06:42
【问题描述】:

我的客户开发了一个 iPhone 应用程序,该应用程序有一个照片库,其中包含不同高度的照片,所以该库看起来像这样:

我被要求在 Android 上做同样的事情,所以我一直在尝试用 GridView 做这件事,但没有运气,我什至开始相信这在 Android 中是不可能的!

我的问题是,这可以在 Android 中使用 Gridview 吗?

【问题讨论】:

  • 所以您想要以不规则尺寸而不是统一尺寸显示网格?
  • 没错,如果gridview包含三列,它们总是从同一点开始,不可能让每一列在前一列结束后开始。
  • 嗯.. 这是新的。我几乎要发布统一尺寸的代码。那将是一个拒绝投票的磁铁。除非有人能给你一些帮助,否则让我看看我能不能做点什么。
  • 我不知道为什么这在 Android 中这么难,我认为 GridView 小部件根本不支持,我需要获取它的源代码并自己修改它。我下载了 GridView.java,但它引用了 Android 源代码中 Android.Internal.R 中的其他文件,很难找到它们
  • 我认为他们只是在 pinterest 上这样做了。 Fancy 也做了一个类似于 gridview 的实现,但这次宽度不规则。我开始认为这只能通过创建自定义布局来实现。

标签: android gridview


【解决方案1】:

这称为 Masonry-View,实现它并不容易,因为目前没有太多有用的东西。

some libraries 可用,但几个月前我尝试它们时,它们并不能满足我的需求,我放弃了使用 Masonry 的想法。但你可以试一试。也许他们有所改进,或者在一些更好的东西之间。

【讨论】:

  • 我只是将垂直方向的 LinearLayout 放在水平方向的 LinearLayout 中。我不明白为什么这很重要,也不明白为什么这个问题被关闭了......
  • 这可能适用于某些用例,但一般(即无限滚动)您需要 Android SDK 适配器 API 以及 - 更重要的是 - 它的内部视图回收。没有它,您很快就会溢出记忆和/或获得 2 fps 的滚动体验。
  • 所以你说使用继承 BaseAdapter 的视图(我认为它被称为)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-24
相关资源
最近更新 更多