检测Android Gallery项目不同区域的点击次数

时间:2011-02-28 23:33:58

标签: android click onclick gallery onfling

嘿伙计们,我已经有一段时间了,我还没有找到100%正常工作的解决方案。

问题

我有一个Android图库循环浏览项目,每个项目包含一个ImageView(让我们称之为缩略图),另一个视图包含一些文本和一个小图标(让我们称之为标题)。

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

例如,如果点击缩略图,我想做动作A(例如弹出一个更大的版本),当点击标题时,我想做动作B,说弹出一个吐司与图片的标题。

我试过的事情

我看到问题的方法有两种:

方法1

将OnItemClickListener从包含Gallery的主视图中附加到Gallery项目,然后将OnClickListener附加到Gallery Adapter中的Title。

虽然这种方法有效,但如果被标题抓住并拖动,它似乎会阻止画廊投掷。

由于onClick返回void,似乎没有办法将onClick事件传递给以后由Gallery的onItemClick处理。

由于我希望能够使用Title,这种方法对我来说不起作用,至少在当前版本中是这样。

方法2

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

如果有办法弄清楚点击的视图是缩略图还是标题,一切都会非常简单,并且投掷将完整无缺。

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

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社区,你能帮助我吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

我有一个解决方案:SwipeView。这是我的一个开源项目,检查github上的最新资源(我网站上的二进制文件有点过时,你所谈论的那些事情已经被修复了很多错误)

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

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

享受!