KeyBoard隐藏事件

时间:2012-01-16 13:57:01

标签: android android-softkeyboard

我读了很多帖子,但我不是很清楚。如何捕捉键盘的关闭?

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作来检测硬件键盘是否显示/隐藏

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig); 

// if a hardware keyboard is available
if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
    Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show();
} else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) {
    Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show();
}
}

您可以执行以下操作解决以检测虚拟键盘是否显示/隐藏

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
final int proposedheight = MeasureSpec.getSize(heightMeasureSpec);
final int actualHeight = getHeight();

if (actualHeight > proposedheight){
    // Keyboard is shown
} else {
    // Keyboard is hidden
}

super.onMeasure(widthMeasureSpec, heightMeasureSpec);
 }

要了解如何实施,请查看此答案https://stackoverflow.com/a/7423586/864955