В моем классе активности я использую как обычную клавиатуру, так и клавиатуру софт-клавиатуры android. Текстовая мягкая клавиатура Android изменяет размеры макета. Если я открываю пользовательскую клавиатуру, когда открыта мягкая клавиатура, последняя скрывается, а макет расширяется. Но я открываю пользовательскую клавиатуру сразу после звонкаПосле того, как клавиатура Android сгладила пользовательскую клавиатуру, отображаемую дважды
InputMethodManager imm = (InputMethodManager)context.GetSystemService(Context.InputMethodService);
imm.HideSoftInputFromWindow(view.WindowToken, 0);
Здесь вид с пользовательской клавиатурой. И я сталкиваюсь с проблемой, когда пользовательские клавиатуры рисуют дважды:
- Когда андроид мягкой клавиатура скрыта, но раскладка не расширена назад еще. В этом случае пользовательская клавиатура появляется в верхней половине экрана.
- После того, как макет развернут назад. В этом случае пользовательская клавиатура появляется в нижней половине экрана.
Что я хочу сделать, так это избежать одновременного появления двух клавиатур. В коде активности я использую только SoftInput.StateAlwaysHidden WindowSoftInputMode. SoftInput.AdjustPan не удобен, потому что в этом случае некоторые виды могут быть скрыты клавиатурой Android.