我想把onkeylister添加到我的线性布局中,但它不起作用,这是我的代码。
提前谢谢。

 innerlayout.setOnKeyListener(new OnKeyListener() {

                @Override
                public boolean onKey(View v, int arg1, KeyEvent e) {
                    // TODO Auto-generated method stub
                    if(e.getKeyCode()==KeyEvent.ACTION_DOWN){

                        Toast.makeText(HomeScreen.this, "down key is working", Toast.LENGTH_LONG).show();
                        innerlayout.setFocusable(true);
                    }
                    return true;
                }
            });

}

最佳答案

当触摸事件从子级传递到父级时。如果任何子级使用该事件(返回true),则该事件将停止;它不会传递给父级。你确定它不是在别处消费的吗?
检查这个,一个动作为true,其余为false,然后调用super:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
        if (event.getAction() == KeyEvent.ACTION_DOWN) {
        //Toast here
            return true;
        }
        **return false;**
    }

此外,还发现:
OnKeyListener or OnKeydown not work if children views take the focus
onKeyDown not being called on key press on View
这是你的案子吗?布局的层次结构是什么

10-07 19:13
查看更多