1

这就是我需要的。

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

触摸对象 A 必须使 AGONE和 B VISIBLE。释放 B 必须使 BGONE和 A VISIBLE。问题是必须在不再次按 B 的情况下完成。

这是我尝试过的。

  1. ACTION_DOWN在 A 和同一 A 上设置触摸事件ACTION_UP,就像描述的那样出现和隐藏 B。这不起作用,因为ACTION_UP在将 A 的可见性设置为 后不会触发GONE

  2. 在 A上设置触摸事件ACTION_DOWN,这将使 AGONE和 B VISIBLE,同时设置新的事件侦听器,以便ACTION_UP在 B 上反转对象的可见性。这也不起作用,因为在 B 出现后,我需要释放,再次按 B 然后释放以使其工作。

我的问题。

  1. 是否可以以假定对象被触摸的方式设置 onTouch 侦听器?这样就不用再按了?

  2. ACTION_UP对象的可见性设置为后是否可以检测 onTouch事件GONE

所有想法,示例,链接将不胜感激。感谢帮助!

4

1 回答 1

2

你可以试试这个

  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 但你可以尝试。

于 2015-09-29T17:31:19.490 回答