Jeśli nie chcesz używać XML, utwórz rozszerzenie Kotlin, aby ukryć klawiaturę
// In onResume, call this
myView.hideKeyboard()
fun View.hideKeyboard() {
val inputMethodManager = context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(windowToken, 0)
}
Alternatywy oparte na przypadku użycia:
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()
}
Jak wyświetlić miękką klawiaturę
fun Context.showKeyboard() { // Or View.showKeyboard()
val inputMethodManager = context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.toggleSoftInput(SHOW_FORCED, HIDE_IMPLICIT_ONLY)
}
Prostsza metoda przy jednoczesnym żądaniu skupienia się na pliku edittext
myEdittext.focus()
fun View.focus() {
requestFocus()
showKeyboard()
}
Uproszczenie premii:
Usuń wymóg używania getSystemService
: Splitties Library
// Simplifies above solution to just
inputMethodManager.hideSoftInputFromWindow(windowToken, 0)
android:windowSoftInputMode="stateHidden"
Użyj następujących funkcji, aby pokazać / ukryć klawiaturę:
źródło
onFocusChange()
Po prostu dodaj dwa atrybuty do widoku nadrzędnego editText.
źródło
Umieść to w manifeście wewnątrz tagu Activity
źródło
Spróbuj tego:
Spójrz na ten, aby uzyskać więcej informacji.
źródło
Aby ukryć softkeyboard w momencie rozpoczęcia nowej działalności lub
onCreate()
,onStart()
itp można wykorzystać poniższy kod:źródło
Korzystanie z AndroidManifest.xml
Korzystanie z języka Java
używając powyższego rozwiązania ukryj klawiaturę, ale edittext nie przejmuje fokusu podczas tworzenia aktywności, ale chwyć ją, gdy ją dotkniesz, używając:
dodaj w swoim EditText
dodaj także odbiornik swojego EditText
źródło
Dodaj następujący tekst do pliku xml.
źródło
Mam nadzieję, że to zadziała, próbowałem wielu metod, ale ta zadziałała
fragments
. po prostu umieść tę linię w onCreateview / init.źródło
Aby ukryć klawiaturę programową w momencie rozpoczęcia nowej aktywności lub metody onCreate (), onStart () itp. Użyj poniższego kodu:
Aby ukryć klawiaturę programową w momencie kliknięcia przycisku w działaniu:
źródło
Użyj SOFT_INPUT_STATE_ALWAYS_HIDDEN zamiast SOFT_INPUT_STATE_HIDDEN
źródło
dodaj swoją aktywność w manifestach tę właściwość
źródło
Umieść ten kod w swoim pliku java i przekaż argument obiektu na edittext,
źródło
Możesz ustawić konfigurację na AndroidManifest.xml
Przykład:
źródło
Użyj poniższego kodu, aby ukryć klawiaturę programową po raz pierwszy po uruchomieniu działania
źródło
Wypróbuj również ten
źródło
Powyższe odpowiedzi również są poprawne. Chcę tylko powiedzieć, że istnieją dwa sposoby na ukrycie klawiatury podczas uruchamiania działania, z manifest.xml. na przykład:
lub
źródło
Oto co zrobiłem:
źródło
Jeśli Twoja aplikacja jest przeznaczona dla interfejsu API systemu Android na poziomie 21 lub wyższym, dostępna jest metoda domyślna.
Upewnij się, że ustawiłeś poniższy kod w
EditText
tagu XML.źródło
Spróbuj tego.
Najpierw w przeszukiwalnym pliku XML pola (nazwa i podpowiedź itp.) Wstaw,
@string
a nie dosłowne ciągi.Następnie metoda
onCreateOptionsMenu
musi miećComponentName
obiekt z nazwą twojego pakietu i ukończoną nazwą klasy (z nazwą pakietu) - w przypadku, gdy aktywność, która zawieraSearchView
komponent, jest taka sama, jak użycie wyników wyszukiwania showgetComponentName()
, jak mówi programista Google Android.Wypróbowałem wiele rozwiązań i po wielu, wielu pracach to rozwiązanie działa dla mnie.
źródło
źródło
to zadziała
źródło