2012-04-14 39 views
1

我有一個OpenGL SurfaceView在我的活動,我使用鍵盤輸入一些文字(發送過來的線)。有沒有存在的EditText,所以我強迫鍵盤使用顯示:景觀鍵盤掩蓋視圖

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); 

活動已定義的屬性android:windowSoftInputMode="adjustResize"這在縱向模式,其中顯示鍵盤時的偉大工程,佈局調整大小(和因此也是表面視圖)。但它不是以橫向模式發生,這使部分曲面(實際上大部分)變得模糊。 surfaceview實現平移和縮放,所以如果我至少知道正在顯示的鍵盤的大小並相應地重新定位surfaceview將會很棒。

有沒有一種方法,使景觀softkeyboard表現爲它在縱向模式下以同樣的方式(這意味着它會調整我的佈局)?如果沒有,有沒有辦法獲得鍵盤的高度(顯然是全屏)?

回答

1

在newsgorup的幫助下,我能夠通過使用視圖覆蓋(onCreateInputConnection)來解決此問題。請參閱original thread

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