androidandroid-softkeyboardandroid-input-method

Disabling the fullscreen editing view for soft keyboard input in landscape?


On Android devices that use soft keyboards, I want to prevent the fullscreen keyboard editing view (shown below) from appearing when in landscape mode (i.e. I want to see only the soft keyboard itself and my view behind it).

I assume this can be achieved using the setExtractViewShown(false) method on InputMethodService, but I am unable to access the default instance of this and do not want to implement a custom input method.

Android fullscreen editing view

Edited to add: the view to which input is going is not a TextView (it's a View with a custom InputConnection implementation), so android:imeOptions="flagNoExtractUi" won't work here.


Solution

  • The extract UI (i.e. the fullscreen editing mode) can be disabled at the point at which the input connection is hooked up:

    @Override
    public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    
        outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI;
        
        // etc.
    }