【问题标题】:OnLongClickListener on image view is not working in facebook chat head implementaion图像视图上的 OnLongClickListener 在 facebook 聊天头实现中不起作用
【发布时间】:2015-04-22 12:25:35
【问题描述】:

我尝试创建 facebook 聊天头服务。参考这个link。 OnTouch 方法工作正常。长按图像视图时我想从当前视图中删除图像视图。我使用了 OnLongClickListener(),它不起作用并且没有显示错误。如何在长按时删除图像视图。

【问题讨论】:

  • 尝试将 longClickable="true" 添加到图像视图
  • @Arturs 感谢您的回复。我在我的代码中添加了它。仍然无法正常工作。

标签: android facebook onlongclicklistener


【解决方案1】:

您似乎正在覆盖触摸侦听器。

chatHead.setOnTouchListener(new View.OnTouchListener() {
  private int initialX;
  private int initialY;
  private float initialTouchX;
  private float initialTouchY;

  @Override public boolean onTouch(View v, MotionEvent event) {
    switch (event.getAction()) {
      case MotionEvent.ACTION_DOWN:
        initialX = params.x;
        initialY = params.y;
        initialTouchX = event.getRawX();
        initialTouchY = event.getRawY();
        return true;
      case MotionEvent.ACTION_UP:
        return true;
      case MotionEvent.ACTION_MOVE:
        params.x = initialX + (int) (event.getRawX() - initialTouchX);
        params.y = initialY + (int) (event.getRawY() - initialTouchY);
        windowManager.updateViewLayout(chatHead, params);
        return true;
    }
    return false;
  }
});

所以你需要手动实现长按。

一个伪代码是这样的:

 case MotionEvent.ACTION_DOWN:
        initialX = params.x;
        initialY = params.y;
        initialTouchX = event.getRawX();
        initialTouchY = event.getRawY();
        action_down_time = System.currentTimeMillis()
        return true;
 case MotionEvent.ACTION_UP:
        //long click triggered if held for at least 2 sec (2000ms)
        if (System.currentTimeMillis() - action_down_time > 2*1000) {
          your_long_click_callback_function()
        }
        return true;

编辑: 您可能还想检查 ACTION_MOVE 中的时间。

【讨论】:

  • 是的。我覆盖了触摸监听器。现在它工作正常。
【解决方案2】:

尝试在初始化 ImageView 时添加此行

imageView.setLongClickable(true);
imageView.setClickable(true);

OR 在您的布局 XML 文件中

 android:longClickable="true"

如果没有启用 OnLongClick,这些行应该启用它

参考:linklink

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-07
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 2011-06-07
    相关资源
    最近更新 更多