android – 将触摸焦点转移到另一个视图

这个问题有点尴尬.是否可以将一个视图的触摸焦点转移到另一个视图?基本上,假设你有一个视图,它拾取第一个ACTION_DOWN触摸事件,然后立即想要将所有触摸事件的焦点转移到另一个视图来处理它的onTouchEvent(MotionEvent事件).我认为执行以下操作会使其工作,但它没有:

 @override
 public boolean onTouchEvent(MotionEvent) {
      this.clearFocus();
      anotherView.setFocusableInTouchMode(true);
      anotherView.requestFocus();
 }

显然,在我看来它只是不起作用.有人可以向我解释我怎么能做这样的事情吗?

如果我仍然有点难以理解我的问题,那么考虑一下常规按钮.按下时,按钮会突出显示(聚焦),如果您将手指从按钮上移开但仍然将手指放在屏幕上,按钮将变得不聚焦,但仍可控制整个触摸事件(即使其他视图也无法聚焦)你移过他们).我的问题是询问是否可以将此触摸焦点转移到另一个视图来处理,而无需将手指从屏幕上移开.

最佳答案 尝试以下代码可能会工作

button1.setOnFocusChangeListener(new OnFocusChangeListener()
{           
    @Override
    public void onFocusChange(View arg0, boolean hasFocus)
    {
        if(hasFocus)                
            button2.requestFocus();             
    }
});
点赞