android - 在 2 行 Gridview 之间添加 View

标签 android gridview split row

我有一个 GridView,每行有 3 个元素,当我单击一个项目时,该行下方会出现一个新 View 。它有点像 iOS 上的文件夹应用程序。我没有在 SO 或 Google 上找到任何答案。也许你可以给我一些提示。

enter image description here

最佳答案

您可以使用 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/

相关文章:

javascript - 根据多个分隔符拆分字符串

javascript - Phonegap - 文件名中不包含 .htm/.html 的 HTML 文件

c# - C# 的免费或开源树状网格?

c# - 在.cs和 GridView 中构造参数查询SQL - LIKE %

c# - DevExpress - 设置单元格值 - mscorlib.dll 中发生类型为 'System.StackOverflowException' 的未处理异常

r - 满足条件时如何将向量拆分为向量列表?

android - 用MySQL flutter 无限 ScrollView

android - 在 Eclipse/Preference 下找不到 Android

android - 如何获取蓝牙耳机电池电量?

c# - 提取短语中的双引号项