1:manifast中对activity添加属性
<activity
android:name=".LoginActivity"
android:windowSoftInputMode="stateAlwaysHidden|adjustResize">
</activity>
2:添加如下代码,并在oncreate中调用,其中main_ll为xml中的根布局
private void listenKeyboard() {
// TODO Auto-generated method stub
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
detailMainRL = (LinearLayout) findViewById(R.id.main_ll);
detailMainRL.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener(){
@Override
public void onGlobalLayout()
{
int heightDiff = detailMainRL.getRootView().getHeight() - detailMainRL.getHeight();
System.out.println("detailMainRL.getRootView().getHeight() = " + detailMainRL.getRootView().getHeight());
System.out.println("detailMainRL.getHeight() = " + detailMainRL.getHeight());
if (heightDiff > detailMainRL.getRootView().getHeight()/3)
{ // 说明键盘是弹出状态
System.out.println("键盘弹出状态");
} else{
System.out.println("键盘收起状态");
}
}
});
}
3:完成。