Есть ли способ изменить значение 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-->