제일 상위루트의 레이아웃뷰에 id를 붙입니다. (여기선 activityRoot)
그 후 그 뷰를 코드에서 불러내어 ViewTreeObserver의 OnGlobalLayoutListener를 붙입니다.
흠 100프로 정확한 방법은 아니지만 현재 방법이 이것밖엔 없네요
http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android
그 후 그 뷰를 코드에서 불러내어 ViewTreeObserver의 OnGlobalLayoutListener를 붙입니다.
흠 100프로 정확한 방법은 아니지만 현재 방법이 이것밖엔 없네요
final View activityRootView = findViewById(R.id.activityRoot);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();
if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
... do something here
}
}
});
참고:http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android

