我有一个 GridView,每行有 3 个元素,当我单击一个项目时,该行下方会出现一个新 View 。它有点像 iOS 上的文件夹应用程序。我没有在 SO 或 Google 上找到任何答案。也许你可以给我一些提示。
最佳答案
您可以使用 GridLayout
轻松地做到这一点,但不能使用 GridView
。
要在放置项目和设置列数之前找出网格的可用宽度,请设置 ViewTreeObserver.OnGlobalLayoutListener
(然后可以放置项目)或扩展 GridLayout 并覆盖onMeasure(int widthMeasureSpec,int heightMeasureSpec)
。
在每一行内容之后插入一行并将其可见性设置为 Visibility.GONE
并将其 columnSpec
设置为 GridLayout
的列数>。当用户点击一个项目时,您可以获得它的信息,填充它下面的 View 并展开或动画它的可见性切换。
最后,对于指示器,我只是将它添加为隐藏行的子项,当用户点击该项目时,计算该项目的水平中心并将该 View 的中心在 X 轴上准确地放置到该坐标(边距就可以了)。
请注意,对于非常大的项目列表,不建议这样做,因为您必须实例化每个项目以立即显示,无论它们是否都适合屏幕。与 GridView
不同,GridLayout
不是 AbsListView
的子级。
关于android - 在 2 行 Gridview 之间添加 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17475721/