Есть ли способ изменить значение android:windowSoftInputMode из класса java?
Я хочу действовать мои вкладки, чтобы иметь разные windowSoftInputMode свойства для каждой вкладки. Как получить доступ к этому свойству из класса java, когда вся обработка вашей вкладки выполняется из одного действия?
есть ли способ получить доступ к этому свойству манифеста из кода java?
4 ответов
используйте следующее, чтобы изменить softInputMode для действия.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
используйте следующее, чтобы изменить тип softInput для EditText.
mEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);
спасибо @Eliezer за исправление
по данным Prasham это, Я сделал это, и это спасло мне жизнь, благодаря ему! The EditText и SoftWindowInput режим довольно глючные, когда у вас есть макет с ScrollView и вы заполняете его динамически.
поскольку я прошел через этот пост, но продолжал читать другие ответы / комментарии (например, Прашана), я решил написать его в новом посте.
ниже код, который я использовал с моим ScrollView:
Activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Я хочу использовать два разных режима для вкладок. Режимы SOFT_INPUT_ADJUST_RESIZE и SOFT_INPUT_ADJUST_NOTHING.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
строка кода выше просто не работает сама по себе. Приложение всегда ведет себя в состоянии ADJUST_NOTHING. Однако, если windowSoftInputMode="adjustResize" вставить в <activity> тег в AndroidManifest.xml-файл, окно приложения изменяется по умолчанию. Кроме того, при вызове следующей строки
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
он будет вести себя, как ожидалось, и ничего не изменяется.
П. С. совершенствование на ответ
можно использовать следующий код
android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) context
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
спасибо Дипак!--2-->