Как я могу указать параметры ime для программной клавиатуры, когда не используется editview? - PullRequest
1 голос
/ 26 октября 2011

В моем приложении я показываю / скрываю клавиатуру, чтобы позволить пользователю управлять пользовательским виджетом. Нет EditText, который имеет фокус.

Проблема, с которой я столкнулся, заключается в том, что я хочу, чтобы раскладка изменялась в размере при отображении клавиатуры. Обычно это делается добавлением android:windowSoftInputMode="adjustResize" к тегу активности в манифесте. Это работает , когда устройство (в настоящее время 7in Galaxy Tab работает на 2.2) находится в портретном режиме, но при повороте на альбомную ориентацию макет не регулирует размер, а клавиатура скрывает половину экрана.

Теперь я заметил, что если вместо этого я использую EditView с android:imeOptions="flagNoExtractUi", размер компоновки изменяется соответствующим образом. Есть ли способ добиться того же эффекта на клавиатуре, отображаемой через маркер окна?

Добавление скрытого EditView на экран не является идеальным, так как это довольно сильно изменит реализацию.

Для справки, вот код, который я использую для отображения клавиатуры в пользовательском виджете.

    mInputMethod = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
    mInputMethod.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
    requestFocus();
    setOnKeyListener(this);

и скрыть.

    mInputMethod.hideSoftInputFromWindow(getWindowToken(), 0);
    setOnKeyListener(null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...