2012-04-14 2 views
1

내 활동에 OpenGL SurfaceView가 있으며 텍스트를 입력하기 위해 키보드를 사용하고 있습니다 (전선을 통해 전송). 아무 글고 존재는 없다, 그래서 키보드를 강제하고하는 것은 사용하여 표시 할 :가로보기 키보드가 보이지 않습니다.

이 활동은 속성 android:windowSoftInputMode="adjustResize" 정의하고이 키보드가 표시됩니다 세로 모드에서 잘 작동
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); 

, 레이아웃 크기를 조정되고있다 (그리고 따라서 표면보기도 마찬가지입니다.) 조경 모드에서 그런 일은 일어나지 않고 있습니다. 실제로는 표면보기 (실제로는 대부분)가 가려집니다. 표면보기는 패닝 및 확대/축소를 구현하므로 적어도 표시되는 키보드의 크기를 알 수 있고 그에 따라 표면 뷰의 위치를 ​​변경할 수 있다면 좋을 것입니다.

소프트 키 보드를 세로 모드에서와 같은 방식으로 가로 방향으로 동작하게하는 방법이 있습니까 (레이아웃의 크기가 조정 됨). 그렇지 않은 경우 키보드의 높이를 얻을 수있는 방법이 있습니까 (분명히 전체 화면으로 표시)?

답변

1

android-developers newsgorup 덕분에보기 (onCreateInputConnection)에서 재정의를 사용하여이 문제를 해결할 수있었습니다. original thread을 참조하십시오.

@Override 
public InputConnection onCreateInputConnection(EditorInfo outAttrs) { 
    InputConnection connection = super.onCreateInputConnection(outAttrs); 
    outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_FULLSCREEN; 
    return connection; 
}