如何在对象设置为不可见后检测 Android 中的 onTouch 释放事件?

How to detect onTouch release event in Android after object is set invisible?

这是我需要的。

假设我们有对象 A、B。最初对象 B 的可见性设置为 GONE,对象 A 的可见性设置为 VISIBLE

触碰物体A必须使AGONE和BVISIBLE。释放B必须使BGONE和AVISIBLE。问题是必须在不再次按 B 的情况下完成。

这是我试过的。

  1. 在 A 上设置触摸事件 ACTION_DOWN 并在同一个 A 上设置 ACTION_UP,就像描述的那样显示和隐藏 B。这行不通,因为在将 A 的可见性设置为 GONE 后不会触发 ACTION_UP

  2. 在 A 上设置触摸事件 ACTION_DOWN,这将使 A GONE 和 B VISIBLE,同时设置新的事件侦听器,使得 ACTION_UP 在 B 上会反转对象的可见性。这也不行,因为B出现后,我需要松开,再按B再松开才能生效。

我的问题。

  1. 是否可以将onTouch监听器设置为假定对象被触摸?这样就不用再按了?

  2. 对象可见性设置为GONE后是否可以检测onTouchACTION_UP事件?

所有想法、示例和链接都将不胜感激。 感谢您的帮助!

你可以试试这个

  buttonA.setOnTouchListener(new OnTouchListener() {
 @Override
 public boolean onTouch(View v, MotionEvent event) {
    if(event.getAction() == MotionEvent.ACTION_DOWN) {
      YourMethodForButtonBGoesVisible();
      YourMethodForButtonAGoesGone();
    } else if (event.getAction() == MotionEvent.ACTION_UP) {
        YourMethodForButtonAGoesVisible();
        YourMethodForButtonBGoesGone();
    }
    return true;
 }    
});

我不知道当按钮 A 消失时这是否会检测到 MotionEvent.ACTION_UP 但你可以试试。