WebView를 사용하는데, 페이지 내에 Input이나 TextField가 있는 경우에 focus를 줘도 키보드가 보여지지 않는 현상이 발생한다.
우선 다음 방법으로 focus를 받을 수 있게 하고, SetOnClickListener()로 기존에걸 덮어버렸다. 원래 WebView에 OnClickListener가 달려있는지는 확실하지 않지만, 아무것도 없는 OnClickListener를 설정하여 해결되는 것을 보면, 원래 WebView에 달리는 OnClickListener (혹은 Click 관련 listener들)에서 focus 연관된 -못된- 작업을 하고 있지 않을까 생각해볼 수 있다.
webView.setFocusable(true); webView.setFocusableInTouchMode(true); webView.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // do nothing } });
하지만, setOnClickListener()로 덮어버리면 원래 잘 하고 있던 작업도 무시하게 되므로 -뭐가 있는지도 모르면서...- 괜히 찝찝하다.
팀원이 찾아준 다음 방법이 focus 처리를 강제로 해주고, 원래 있을지도 모르는 OnClickListener의 작업도 방해하지 않으니 현재 상황에서 선방하는 해결책이 아닐까 싶다.
webview.requestFocus(View.FOCUS_DOWN); webview.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_UP: if (!v.hasFocus()) { v.requestFocus(); } break; } return false; } });
'iOS & Android' 카테고리의 다른 글
안드로이드 2.3.3 Gingerbread android.jar 소스 (0) | 2011.04.15 |
---|---|
애플 개발자 프로그램 등록 - 기업용 company (1) | 2011.04.12 |
애플 계정 이름 바꾸기 (1) | 2011.04.11 |