美文网首页
OnKeyListener的回调混乱处理

OnKeyListener的回调混乱处理

作者: moushao | 来源:发表于2020-08-20 13:35 被阅读0次

问题

比如界面上有A、B两个按钮,A设置了OnKeyListener,B设置了OnClickListener。

A.setOnKeyListener(new OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
                //A 的外接键盘事件
               return true;
            }
            return false;
        }
    });

B.setOnClickListener(new View.OnClickListener(){
       @Override
      public void onClick(View v) {
            //B 控件的点击事件
      }
  });

在使用外接键盘输入的时候,在第一次会回调到A上,没错。但第二次及以后,外接键盘的输入就不会在回调到onKey上了,而是B的onClick事件被响应了。

分析

B控件夺取到了A控件的焦点,比如在xml的布局中,A在B的下面

解决办法:

xml中设置B控件不获取焦点,

  android:focusable="false"

碎碎念

有用就点个赞吧!

相关文章

网友评论

      本文标题:OnKeyListener的回调混乱处理

      本文链接:https://www.haomeiwen.com/subject/xdlsjktx.html