Si vous ne souhaitez pas utiliser xml, créez une extension Kotlin pour masquer le clavier
// In onResume, call this
myView.hideKeyboard()
fun View.hideKeyboard() {
val inputMethodManager = context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(windowToken, 0)
}
Alternatives basées sur le cas d'utilisation:
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()
}
Comment afficher le clavier virtuel
fun Context.showKeyboard() { // Or View.showKeyboard()
val inputMethodManager = context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.toggleSoftInput(SHOW_FORCED, HIDE_IMPLICIT_ONLY)
}
Méthode plus simple lors de la demande simultanée de focus sur un edittext
myEdittext.focus()
fun View.focus() {
requestFocus()
showKeyboard()
}
Simplification du bonus:
Supprimer l'exigence pour toujours utiliser getSystemService
: Splitties Library
// Simplifies above solution to just
inputMethodManager.hideSoftInputFromWindow(windowToken, 0)
android:windowSoftInputMode="stateHidden"
Utilisez les fonctions suivantes pour afficher / masquer le clavier:
la source
onFocusChange()
Ajoutez simplement deux attributs à la vue parente de editText.
la source
Mettez ceci dans le manifeste à l'intérieur de la balise Activity
la source
Essaye ça:
Regardez celui- ci pour plus de détails.
la source
Pour masquer le clavier logiciel au moment du démarrage d'une nouvelle activité ou
onCreate()
,onStart()
etc., vous pouvez utiliser le code ci-dessous:la source
Utilisation d' AndroidManifest.xml
Utilisation de Java
en utilisant la solution ci-dessus, le clavier cache mais edittext ne prend pas le focus lors de la création de l'activité, mais saisissez-le lorsque vous le touchez en utilisant:
ajouter dans votre EditText
ajoutez également un écouteur de votre EditText
la source
Ajoutez le texte suivant à votre fichier xml.
la source
J'espère que cela fonctionnera, j'ai essayé beaucoup de méthodes mais celle-ci a fonctionné pour moi
fragments
. mettez simplement cette ligne dans onCreateview / init.la source
Pour masquer le clavier logiciel au moment du démarrage d'une nouvelle activité ou de la méthode onCreate (), onStart (), etc., utilisez le code ci-dessous:
Pour masquer le clavier logiciel au moment du bouton, cliquez sur l'activité:
la source
Utilisez SOFT_INPUT_STATE_ALWAYS_HIDDEN au lieu de SOFT_INPUT_STATE_HIDDEN
la source
ajoutez dans votre activité dans les manifestes cette propriété
la source
Mettez ce code dans votre fichier java et passez l'argument d'objet sur edittext,
la source
Vous pouvez définir la configuration sur AndroidManifest.xml
Exemple:
la source
Utilisez le code suivant pour masquer le clavier virtuel pour la première fois lorsque vous démarrez l'activité
la source
Essayez aussi celui-ci
la source
Les réponses ci-dessus sont également correctes. Je veux juste dire qu'il y a deux façons de masquer le clavier lors du démarrage de l'activité, à partir de manifest.xml. par exemple:
ou
la source
C'est ce que j'ai fait:
la source
Si votre application cible l' API Android de niveau 21 ou supérieur , une méthode par défaut est disponible.
Assurez-vous d'avoir défini le code ci-dessous dans la
EditText
balise XML.la source
Essaye ça.
Tout d'abord dans votre xml interrogeable, les champs (nom et indice, etc.) mettent
@string
et non des chaînes littérales.Ensuite, la méthode
onCreateOptionsMenu
doit avoir unComponentName
objet avec le nom de votre package et le nom de votre classe complété (avec le nom du package) - Dans le cas où l'activité qui contient leSearchView
composant est la même que celle utiliséegetComponentName()
dans les résultats de la recherche , comme le dit le développeur Google Android.J'ai essayé beaucoup de solutions et après beaucoup de travail, cette solution fonctionne pour moi.
la source
la source
ça fonctionnera
la source