2013년 12월 10일 화요일

소프트 키보드가 켜졌는지 안켜졌는지 확인하는 법

제일 상위루트의 레이아웃뷰에 id를 붙입니다. (여기선 activityRoot)
그 후 그 뷰를 코드에서 불러내어 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

댓글 없음:

댓글 쓰기