gpt4 book ai didi

android - 检测对 Android Gallery 项目不同区域的点击

转载 作者:行者123 更新时间:2023-11-29 02:14:28 26 4
gpt4 key购买 nike

大家好,我已经研究了一段时间,但我还没有找到 100% 有效的解决方案。

问题

我有一个循环显示项目的 Android Gallery,每个项目都由一个 ImageView(我们称之为缩略图)和它下方的另一个 View 组成,其中包含一些文本和一个小图标(我们称之为标题)。

我想要实现的是基于用户点击位置的 2 种不同操作,所有这些操作都不会影响画廊向左和向右滑动的方式。

例如,如果单击缩略图,我想执行操作 A(例如弹出一个更大的版本),而当单击标题时,我想执行操作 B,比如弹出一个 toast 带有图片的标题。

我尝试过的事情

在我看来,有两种解决问题的方法:

方法一

从包含图库的主视图中将 OnItemClickListener 附加到图库项目,然后从图库适配器中将 OnClickListener 附加到标题。

虽然这种方法有效,但它似乎可以防止画廊在被标题捕获和拖动时抛出。

由于 onClick 返回 void,因此似乎无法将 onClick 事件向下传递以供 Gallery 的 onItemClick 稍后处理。

因为我希望能够使用 Title 进行 throw ,所以这种方法对我不起作用,至少在当前版本中是这样。

方法二

第二种方法是在 Gallery 的 setOnItemClickListener 中包含所有检测逻辑。

如果有一种方法可以确定点击的 View 是缩略图还是标题,那么一切都会非常简单,而且 fling 也会完好无损。

但是,我还不知道该怎么做。

g.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
// TODO: figure out which view has been clicked on, but how?
}
}

由于我使用带有 ViewHolders 范例的无限适配器,所以我尝试打印这些值:

Log.d("IDs", v.getId() + " " + ((ViewHolder) v.getTag()).thumbnail.getId() + " " + getSelectedItemId() + " " + parent.getId() + " " + parent.getItemIdAtPosition(0));

但是在点击缩略图之后它们都不同了:

-1 2131230800 -9223372036854775808 2131230865 0

所以,现在我被难住了。聪明的 Android 社​​区,你能帮帮我吗?

谢谢。

最佳答案

我为您提供了一个解决方案:SwipeView。这是我的一个开源项目,查看 github 上的最新源代码(我网站上的二进制文件有点过时了,很多与你所说的事情有关的错误已经被修复)

https://github.com/fry15/uk.co.jasonfry.android.tools

这里有一个演示项目:http://jasonfry.co.uk/?id=28

尽情享受吧!

关于android - 检测对 Android Gallery 项目不同区域的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5148870/

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