我想把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
这是你的案子吗?布局的层次结构是什么