Если вы не хотите использовать xml, создайте расширение Kotlin, чтобы скрыть клавиатуру
// In onResume, call this
myView.hideKeyboard()
fun View.hideKeyboard() {
val inputMethodManager = context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(windowToken, 0)
}
Альтернативы в зависимости от варианта использования:
fun Fragment.hideKeyboard() {
view?.let { activity?.hideKeyboard(it) }
}
fun Activity.hideKeyboard() {
// Calls Context.hideKeyboard
hideKeyboard(currentFocus ?: View(this))
}
fun Context.hideKeyboard(view: View) {
view.hideKeyboard()
}
Как показать мягкую клавиатуру
fun Context.showKeyboard() { // Or View.showKeyboard()
val inputMethodManager = context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.toggleSoftInput(SHOW_FORCED, HIDE_IMPLICIT_ONLY)
}
Более простой метод при одновременном запросе фокуса на тексте редактирования
myEdittext.focus()
fun View.focus() {
requestFocus()
showKeyboard()
}
Упрощение бонусов:
Убрать требование навсегда используя getSystemService
: Splitties Library
// Simplifies above solution to just
inputMethodManager.hideSoftInputFromWindow(windowToken, 0)
android:windowSoftInputMode="stateHidden"
Используйте следующие функции, чтобы показать / скрыть клавиатуру:
источник
onFocusChange()
Просто добавьте два атрибута в родительский вид editText.
источник
Поместите это в манифест внутри тега Activity
источник
Попробуй это:
Посмотрите на это для более подробной информации.
источник
Чтобы скрыть программную клавиатуру во время запуска новой операции или
onCreate()
,onStart()
и т. Д., Вы можете использовать код ниже:источник
Использование AndroidManifest.xml
Использование Java
используя клавиатуру решения выше, скрыть, но редактировать текст, чтобы не фокусироваться при создании activiy, но захватить его, когда вы касаетесь их, используя:
добавить в ваш EditText
также добавьте слушатель вашего EditText
источник
Добавьте следующий текст в ваш XML-файл.
источник
Я надеюсь, что это сработает, я пробовал много методов, но этот работал для меня
fragments
. просто поместите эту строку в onCreateview / init.источник
Чтобы скрыть программную клавиатуру во время запуска новой операции или метода onCreate (), onStart () и т. Д., Используйте код ниже:
Чтобы скрыть программную клавиатуру во время нажатия кнопки в действии:
источник
Используйте SOFT_INPUT_STATE_ALWAYS_HIDDEN вместо SOFT_INPUT_STATE_HIDDEN
источник
добавить в свою деятельность в манифестах это свойство
источник
Поместите этот код в свой Java-файл и передайте аргумент для объекта в edittext,
источник
Вы можете установить конфигурацию на AndroidManifest.xml
Пример:
источник
Используйте следующий код, чтобы скрыть программную клавиатуру в первый раз при запуске действия
источник
Попробуйте это тоже
источник
Приведенные выше ответы также верны. Я просто хочу дать краткое описание того, что есть два способа скрыть клавиатуру при запуске действия, из файла manifest.xml. например:
или
источник
Вот что я сделал:
источник
Если ваше приложение ориентировано на Android API Level 21 или более, чем доступен метод по умолчанию.
Убедитесь, что вы установили ниже код в
EditText
теге XML.источник
Попробуй это.
Сначала в xml с возможностью поиска ставятся поля (имя, подсказка и т. Д.), А
@string
не буквальные строки.Затем метод
onCreateOptionsMenu
, у него должен бытьComponentName
объект с именем вашего пакета и вашим завершенным именем класса (с именем пакета). В случае, если действие сSearchView
компонентом совпадает с использованием результатов поискаgetComponentName()
, как говорит разработчик Google Android.Я перепробовал много решений, и после долгой работы это решение работает для меня.
источник
источник
это будет работать
источник