2010-08-09 62 views
1

我有一个2适配器扩展BaseAdapater。第一个适配器(我们称之为imageAdapter)在一个ID上加载一个图像库,第二个适配器(pageAdapter)从第一个适配器构建图像网格。我将第二个适配器设置为一个画廊。我的想法是,我可以在每张专辑中有多张照片的相册中排序页面。OnClickListener和OnTouchListener

现在我想要imageViews发射点击,所以我为来自imageAdapter的每个imageView设置了一个onClickListener。问题是,在设置onClickListener之后,我无法通过触摸/拖动/滚动图片来滚动图片库。我认为这是一个父母/儿童事件通过事情通过..但我不知道如何解决它的确切。请帮忙。

回答

2

这是一个疯狂的猜测,基于ListView的经验(其中一个clickListener的工作,但父母onClickListener没有),但在imageViews上设置onClickListener可能已经使它失去了焦点,现在你的其他触摸事件未注册。

尝试设置myImageView.setFocusable(false)

我假设一切正常添加的onClickListener到ImageViews之前预期。

+0

嗨极光,一切工作之前,我设置onClickListener。关注焦点不起作用。我会尝试拦截触摸事件和下来事件... – Jack 2010-08-09 22:59:54

+0

是的,对不起。正如我所说,疯狂的猜测。祝你好运! – Aurora 2010-08-09 23:29:04

1

我通过继承Gallery并重写onDown()和onSingleTapUp()来解决此问题。我还必须实现一个pointToChildId()方法来将运动事件转换为项目id。 =)比我最初计划的工作要多得多,但现在可以工作了,我对解决方案非常满意。