2012-01-16 7 views
1

私は多くのスレッドを読みましたが、あまり明確ではありませんでした。どのようにキーボードの終了をキャプチャするには?ハードウェアキーボードが表示されている場合KeyBoard隠しイベント

答えて

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

+1

を確認し、実装する方法を確認するには、と動作しません。 –

+0

何がうまくいかない – rfsk2010

+0

ハードウェアキーボードではありませんが、ソフトキーボードです –

関連する問題