2012-05-07 2 views
1

내 애플리케이션에서 클릭하면 EditText 위젯을 표시하고 포커스를두고 키보드를 표시하는 검색 버튼이 있습니다. 나는 풍경에 예상대로Galaxy Nexus '텍스트를 전체 화면으로 일관되게 편집하지 않음

queryTextView.requestFocus(); 
    InputMethodManager imm = Utilities.getInputMethodManagerFromContext(getContext()); 
    imm.showSoftInput(queryTextView, InputMethodManager.SHOW_FORCED); 

이 처음이다 : 나는이 작업을 수행 할 때이 코드를 호출

Working example

내가 텍스트를 입력하고 검색을 명중하면, 나는 숨길 내 EditText를 누르고 키보드를 강제로 닫으십시오. 내가 다시 키보드를 EdidText 볼 수 있도록 다시는 내 버튼을 눌러 및 표시한다면

InputMethodManager imm = Utilities.getInputMethodManagerFromContext(getContext());  
    imm.hideSoftInputFromWindow(getWindowToken(), 0); 

, 내 화면 (경우에만 주식 갤럭시 넥서스 키보드를 사용) 다음과 같습니다 :이이 코드를 사용 할

Broken landscape

등의 콘텐츠 더보기 SwiftKey 같은 다른 키보드를 사용하여, 나는이 동작을하지 않습니다. 이 소프트 키보드가 화면을 완전히 채우지 않는 이유는 무엇입니까?

답변

1

편집 : 키보드가 전체 화면을 차지하려고, 그래서 onEvaluateFullscreenMode 사실 반환해야처럼 두 번째 생각에, 당신의 스크린 샷에서 보이는 ... 아마도 문제는 onCreateExtractTextView

어딘가에하지 무엇을 찾고 있습니다.하지만 다른 모든 것이 실패 할 경우 아마도 AOSP 키보드 소스를 가져 와서 걸어서 onEvaluateFullscreenMode이 돌아 오는 지 또는 어쩌면 전혀 호출되지 않고 있는지 파악할 수 있습니다.

+0

응답 해 주셔서 감사합니다. 불행히도 이러한 메소드 중 어느 것도 호출되지 않습니다. 나는이 두 가지 방법 모두에 중단 점을 넣었고 키보드를 호출해도 어느 쪽도 맞지 않습니다. 이것은 AOSP 소스의 InputMethodService 클래스에 있습니다. 거기에 사용할 수있는 또 다른 구현이 있습니까? 나는 AOSP 소스를 통해 greping 다른 어떤 일치를 찾지 못했습니다. –

+0

여러분은 키보드 자체의 코드에 있어야한다고 생각합니다. 확장 된 서비스가 아닙니다. 좀 더 파고 들었고 LatinIME.java를 찾았습니다. (실행중인 프로세스를보고 추적했습니다. com.google.android.inputmethod.latin 패키지가 나를 이끌었습니다) 키보드의 코드가 실제로 존재하는 곳입니다. Android SDK에서 다운로드 한 소스 코드가 제공되지 않습니다. 불행히도 onStartInputView가 보일 장소가 될 수 있지만, 내가 말하는 오버라이드를 볼 수 없습니다. http://bit.ly/JQRBrk –

+1

좋은 오래된 dev 설정, 항상 문제가 발생 –

0

해당 기능을 사용하려면 android : imeOptions = "flagNoFullscreen"을 사용하십시오.

관련 문제