Things take time

[Android] Webivew의 키보드 감지 이벤트 본문

Android(기능)

[Android] Webivew의 키보드 감지 이벤트

겸손할 겸 2018. 12. 6. 16:53

[로직]


웹뷰내에서 위지윅 같은 에디터를 사용하려 터치를 하게되면 키보드가 올라오게 된다. 그런데 일반적으로 글을 다 쓴 사용자는 무의식적으로 키보드의 엔터를 누르게 되는데, 이때 엔터를 누르면 키보드가 내려가길 바랄수도 있다. 물론 반대로, 엔터키를 누르면 개행이 되어야한다고 볼 수도 있다.


여기서는 전자의 경우를 예로 든다. 댓글쓰기 같은 한줄에서는 엔터를 눌렀을 때 내려가는게 맞으므로..

    @Override
    public void onUnhandledKeyEvent(WebView view, KeyEvent event) {
        if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER){
            InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
        }
        return;
    }

이 소스코드는 WebViewClient를 상속받아 Override하는 함수이다. 상황에 맞게 적절히 사용하자. 참고로 일반적인 자판 키는 감지 안된다!