【问题标题】:OnClickListener and OnTouchListenerOnClickListener 和 OnTouchListener
【发布时间】:2010-08-09 17:16:05
【问题描述】:

我有 2 个扩展 BaseAdapter 的适配器。第一个适配器(我们称之为 imageAdapter)基于 ID 加载图像,第二个适配器(pageAdapter)从第一个适配器构建图像网格。我将第二个适配器设置为画廊。这个想法是我可以对相册中的页面进行排序,其中每个相册上有多张图片。

现在我想让 imageViews 触发点击,所以我为 imageAdapter 中的每个 imageViews 设置了一个 onClickListener。问题是,在我设置了 onClickListener 之后,我无法再通过触摸/甩动/滚动图像来滚动图库。我认为这是父/子事件传递的问题..但我不确定如何准确修复它。请帮忙。

【问题讨论】:

    标签: android


    【解决方案1】:

    这是一个基于 ListView 体验的疯狂猜测(其中一个 clickListener 有效,但父级 onClickListener 没有),但在 imageViews 上设置 onClickListener 可能已经成功,因此他们已经拿走了焦点,现在你的另一个触摸事件未注册。

    尝试设置myImageView.setFocusable(false)

    我假设在您将 onClickListener 添加到 ImageView 之前一切都按预期工作。

    【讨论】:

    • 嗨 Aurora,在我设置 onClickListener 之前一切正常。在可聚焦上不起作用。我打算尝试拦截touch事件和down up事件……
    • 是的,对不起。正如我所说,疯狂的猜测。祝你好运!
    【解决方案2】:

    我通过子类化 Gallery 并覆盖 onDown() 和 onSingleTapUp() 解决了这个问题。我还必须实现一个 pointToChildId() 方法来将运动事件转换为项目 ID。 =) 这比我最初计划的要多得多,但现在可以了,我对解决方案非常满意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多