browser 와 입력기


브라우저 실행 중에 검색어, 아이디 등을 입력하기 위해 touch 를 하면 입력기가 뜬다.

어떤 식으로 동작되는 것인지.....


일단 WebTextView.java 가 중심이 되는 소스이다...

검색창을 touch 하면


1. doShortPress()   //  webview.java

--> nativeMotionUp()   // webview.cpp  

--> motionUp()  // webview.cpp 

   : 이곳에서 넘어 온 좌표를 보고 text 관련 영역인지 판단하고,  rebuildWebTextView(), displaySoftKeyboard(true) 를 

     실행한다.  결과적으로 displaySoftKeyboard() 를 통해서 IME 가 실행된다.



# rebuildWebTextView() 를 자세히 보자.

 : 이 함수는 여러 곳에서 불린다. 
  
  1) setSingleLine() 
 
  이 함수는 setImeOptions(), setInputType() 함수를 통해 IME 관련 셋팅을 한다.

  setImeOptions() 함수는 next, go, done 의 option 을 통해 IME 에 반영한다.

  물론 어떤 option 으로 셋팅을 할지는 mWebView.nativeTextFieldAction(); 를 통해 얻어 온다.
 
  setInputType 이 호출되면서 InputMethodManager.restartInput() , InputMethodManager.startInputInner() 가

  불리고, 이를 통해 WebTextView.onCreateInputConnet() 에서 connect 를 inputMethodManager 에서 얻어간다.

  
  2) onSelectionChanged()
  
  이유는 모르겠으나 setText() 함수 호출 시에 불린다.
  
  3) onTextChanged()

  이유는 모르겠으나 setText() 함수 호출 시에 불린다.





# 입력기에서 next, go, done 을 누를 경우

  onEditorAction() 가 실행되면서 actionCode 에 따라서 처리를 한다.



# 입력기를 통해 글자 입력 시

  onTextChanged() 가 호출되면 WebTextView 에 씌여 있는 글자가 arg 로 넘어 온다.








  


by 수영사랑 | 2010/05/18 17:30 | Browser Application 관련 | 트랙백 | 덧글(0)

트랙백 주소 : http://skyswim42.egloos.com/tb/3703824
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶