gpt4 book ai didi

android - 带间距的 GridView pointToPosition

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:37 26 4
gpt4 key购买 nike

我的应用程序使用 gridview 来显示一些项目,我想在该 gridview 中进行一些拖放操作。基本上用户可以选择一个项目并将其移动到不同的位置。这并不难实现,但我偶然发现了一个小问题。当点位于两个网格单元格之间 时,pointToPosition 返回INVALID_POSITION。这是可以理解的,但并没有真正的帮助——在我的例子中,我向用户展示了他四处拖动东西时的顺序预览,当他在间距上拖动时,我突然不知道我应该显示什么.

一种解决方案是实际删除间距。但我仍然希望瓷砖之间有一些视觉间距。

我有可能遗漏了一些计算最接近给定位置的图 block 的方法。

让 gridview 在元素之间具有“仅视觉”间距的最佳方式是什么?

我当前的(临时的?最终的?)解决方案是根本不使用背景并将它们直接绘制到 gridview 背景中。但这似乎不是个好主意。

最佳答案

这就是我最后要使用的:spacing = 0 和包含带圆角的 shapedrawable 的图层列表可绘制对象。另一个这样的可绘制对象用作 GridView 的选择器:

padded_border_normal.xml:

<item android:left="3dp"
android:right="3dp"
android:top="3dp"
android:bottom="3dp">

<shape android:shape="rectangle">
<solid android:color="@android:color/transparent" />
<stroke android:color="#8033b5e5" android:width="@dimen/border_width"/>
<corners android:radius="7dp"/>
<size android:height="60dp" android:width="60dp" />
</shape>
</item>

padded_border_pressed.xml:

<item android:left="3dp"
android:right="3dp"
android:top="3dp"
android:bottom="3dp">

<shape android:shape="rectangle">
<solid android:color="#6033b5e5" />
<stroke android:color="#8033b5e5" android:width="@dimen/border_width"/>
<corners android:radius="7dp"/>
<size android:height="60dp" android:width="60dp" />
</shape>
</item>

grid.setSelector(R.drawable.padded_border_pressed); 创建网格时 result.setBackgroundResource(R.drawable.padded_border_normal); 创建网格 ListView 时

关于android - 带间距的 GridView pointToPosition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14078416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com