【发布时间】:2012-12-29 03:20:25
【问题描述】:
我的应用程序使用 gridview 来显示一些项目,我想要在该 gridview 中进行一些拖放操作。基本上用户可以选择一个项目并将其移动到不同的位置。这并不难实现,但我偶然发现了一个小问题。当点位于两个网格单元之间 时,pointToPosition 返回 INVALID_POSITION。这是可以理解的,但并没有真正的帮助——在我的情况下,我向用户展示了当他拖动东西时的顺序预览,当他拖动间距时,我突然不知道我应该显示什么.
一种解决方案是实际删除间距。但我仍然想要瓷砖之间的视觉间距。
我有可能错过了计算最接近给定位置的图块的方法。
让gridview在元素之间具有“仅视觉”间距的最佳方式是什么?
我当前(临时?最终?)的解决方案是根本不使用背景并将它们直接绘制到 gridview 背景中。不过,这似乎不是一个好主意。
【问题讨论】:
-
你不能把
GridView中的空格去掉,直接添加到它的单元格视图中吗? -
单元格视图是简单的 ImageViews。我试图避免使用比这更复杂的东西。
-
您是否尝试为
ImageViews自己添加一些填充并删除GridView的间距? -
我还需要使我的 ImageViews 成为正方形(gridview 设置宽度,我设置为使用相同的宽度),所以我必须覆盖 onMeasure。这可能是设置填充不起作用的原因 - 背景被拉伸到全视图。