android - 每行中具有动态项目数的 GridView

标签 android android-gridview

我正在尝试实现一个 gridview,其中每行中的项目数不同,具体取决于每个项目的宽度。我希望它看起来像 Medium 应用程序中的那个,如下所示:

Medium

我怎样才能做到这一点?

最佳答案

您可以通过两种主要方式解决问题:

  1. ScrollView 中使用 Linear - 或 RelativeLayout。然后您将在代码中添加项目,测量每个项目并在需要时将它们放入新行。这将需要创建一些逻辑,但这是可以实现的。如果内容超过屏幕高度,ScrollView 将负责滚动。此解决方案的问题是您将没有回收机制,当列表变长时,这可能会导致内存问题。

  2. 使用RecyclerView! :-D RecyclerView 的一个很棒的特性是,在提供基于标准适配器的项目列表概念的同时,它还允许您实现自定义 LayoutManager。创建您自己的 LayoutManager 实现,它根据测量的项目定位项目,您就完成了,RecyclerView 将负责为您滚动和回收项目! :-D 这需要一些时间来适应,特别是如果您没有使用 RecyclerView 的经验,但整个过程应该不会超过几个小时,而且在我看来,这真的是值得的。

您可以自由选择,但第二种方法更现代,而且通常更容易实现。一般来说,您应该学习使用 RecyclerView,它比老式的 ListGridViews 有很大帮助并且实现起来更快,一旦掌握了它。

关于android - 每行中具有动态项目数的 GridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34806539/

相关文章:

android - 将动态项目添加到linearlayout显示逆序android

android - 将 asynctask 值传递给 mainactivity 时出现上下文错误

Android gridview 图像缓存,滚动图像在替换之前重复

android - 在我的应用程序运行时监听 PURCHASES_UPDATED 以兑换促销代码

java - java中如何给数组添加值

android - 如何在 AndEngine 中移除碰撞的 box2d 物体?

android - 将标签/文本添加到 Android Gridview

android - CardView 容器中的 View 无法使用圆角半径正确呈现

android - 具有与 gridview 相同行为的布局?

android - 动态添加Button端到GridView