最佳答案
您可以通过两种主要方式解决问题:
在
ScrollView
中使用Linear
- 或RelativeLayout
。然后您将在代码中添加项目,测量每个项目并在需要时将它们放入新行。这将需要创建一些逻辑,但这是可以实现的。如果内容超过屏幕高度,ScrollView 将负责滚动。此解决方案的问题是您将没有回收机制,当列表变长时,这可能会导致内存问题。使用
RecyclerView
! :-DRecyclerView
的一个很棒的特性是,在提供基于标准适配器的项目列表概念的同时,它还允许您实现自定义LayoutManager
。创建您自己的LayoutManager
实现,它根据测量的项目定位项目,您就完成了,RecyclerView
将负责为您滚动和回收项目! :-D 这需要一些时间来适应,特别是如果您没有使用RecyclerView
的经验,但整个过程应该不会超过几个小时,而且在我看来,这真的是值得的。
您可以自由选择,但第二种方法更现代,而且通常更容易实现。一般来说,您应该学习使用 RecyclerView
,它比老式的 List
和 GridViews
有很大帮助并且实现起来更快,一旦掌握了它。
关于android - 每行中具有动态项目数的 GridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34806539/