2016-08-12 4 views
1

У меня есть активность с одним EditText. Я хотел бы использовать оба подхода для отображения клавиатуры во время моих операций:Изменение режима мягкого ввода в действии

  1. SOFT_INPUT_ADJUST_PAN
  2. SOFT_INPUT_ADJUST_RESIZE

Я использую это:

  if (something()) { 
       getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 
      } else { 
       getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 
      } 

но она нуждается в воссоздании (ориентации устройства изменения) для правильной работы (для первого условия - настройка на SOFT_INPUT_ADJUST_PAN, потому что вторая работает правильно). Как я могу сделать это программно?

+0

Попробуйте объединить оба флага типа: 'getWindow(). SetSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);' –

ответ

1

ОК Я только что нашел решение для своей проблемы. android: windowSoftInputMode = "adjustPan" в AndroidManifest необходимо в этой ситуации. Я думал, что это не нужно, поскольку я меняю это программно, но это так. Теперь он работает нормально без дополнительного отдыха.