Introducció a Amagar el teclat d'Android
Quan desenvolupeu aplicacions d'Android, hi ha moments en què heu d'amagar programadament el teclat suau. Això és especialment útil quan teniu un EditText i un Button a la vostra disposició i voleu que el teclat desaparegui després de fer clic al botó.
En aquesta guia, explorarem maneres senzilles i efectives d'aconseguir aquesta funcionalitat. Si seguiu els passos indicats, podreu millorar l'experiència d'usuari de la vostra aplicació gestionant la visibilitat del teclat de manera eficient.
Comandament | Descripció |
---|---|
getSystemService | Recupera un servei a nivell de sistema pel nom; aquí, s'utilitza per obtenir l'InputMethodManager per gestionar el teclat. |
hideSoftInputFromWindow | Oculta el teclat suau de la finestra, prenent un testimoni i marques com a paràmetres. |
getCurrentFocus | Retorna la vista enfocada actual a l'activitat, utilitzada per determinar d'on s'ha d'amagar el teclat. |
onClickListener | Configura una devolució de trucada que s'activa quan es fa clic en una visualització (p. ex., Botó). |
dispatchTouchEvent | Intercepta els esdeveniments de moviment de la pantalla tàctil abans que s'enviïn a la finestra, útil per a la gestió personalitzada del toc. |
windowToken | Retorna un testimoni que identifica de manera única la finestra associada a la vista, necessària per amagar el teclat. |
Entendre com amagar el teclat d'Android
A l'exemple de Java, l'script importa primer les classes necessàries com ara , , i . El onCreate El mètode configura el disseny i inicialitza el fitxer i . Quan es fa clic al botó, el s'anomena mètode. Aquest mètode recupera la vista enfocada actual utilitzant getCurrentFocus, i si una vista està enfocada, s'utilitza per ocultar el teclat programat trucant . Això tanca efectivament el teclat quan es fa clic al botó.
A l'exemple de Kotlin, s'aconsegueix una funcionalitat similar. El guió anul·la el mètode per configurar la vista de contingut i inicialitzar el fitxer i . El botó que fa clic l'oient crida a hideKeyboard mètode. A més, el s'invalida el mètode per ocultar el teclat quan es toca fora. Aquest mètode comprova si una vista està enfocada i amaga el teclat utilitzant . Aquests scripts milloren l'experiència de l'usuari gestionant la visibilitat del teclat suau de manera eficient.
Tancant el teclat suau d'Android amb programació
Desenvolupament de Java per a Android
import android.app.Activity;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText editText = findViewById(R.id.editText);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
hideKeyboard();
}
});
}
private void hideKeyboard() {
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
}
Amaga el teclat en tocar l'exterior
Kotlin per al desenvolupament d'Android
import android.app.Activity
import android.os.Bundle
import android.view.MotionEvent
import android.view.View
import android.view.inputmethod.InputMethodManager
import android.widget.EditText
import android.widget.Button
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val editText = findViewById<EditText>(R.id.editText)
val button = findViewById<Button>(R.id.button)
button.setOnClickListener { hideKeyboard() }
}
private fun hideKeyboard() {
val view = this.currentFocus
view?.let { v ->
val imm = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(v.windowToken, 0)
}
}
override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
if (currentFocus != null) {
val imm = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(currentFocus!!.windowToken, 0)
}
return super.dispatchTouchEvent(ev)
}
}
Tècniques avançades per gestionar el teclat d'Android
Un altre aspecte important de la gestió del teclat suau d'Android és gestionar la seva visibilitat en resposta a diverses interaccions i configuracions dels usuaris. Per exemple, és possible que vulgueu que el teclat aparegui automàticament quan un guanya el focus o per assegurar-se que s'amaga quan es navega entre diferents components de la IU. Això es pot aconseguir utilitzant el juntament amb les devolució de trucades del cicle de vida, com ara i onPause.
A més, podeu controlar el comportament del teclat ajustant-lo atribut al fitxer de manifest de la vostra activitat. Aquest atribut us permet especificar si el teclat ha d'ajustar la disposició de l'activitat o romandre ocult fins que ho sol·liciti explícitament. L'ús d'aquestes configuracions pot millorar significativament l'experiència de l'usuari proporcionant una interfície més intuïtiva i sensible.
- Com amago el teclat quan un perd el focus?
- Podeu anul·lar el oient de la i truca .
- Puc mostrar automàticament el teclat quan un guanya el focus?
- Sí, utilitza en el oient.
- Com puc amagar el teclat en un fragment?
- Anomenada en el context de la vista del fragment.
- Què és usat per?
- Especifica com interactua el teclat amb la disposició de l'activitat, com ara canviar la mida o romandre ocult.
- Com amago el teclat quan toco fora d'un ?
- Anul·lació a la teva activitat per comprovar si hi ha esdeveniments tàctils fora de .
- Puc forçar el teclat a romandre ocult?
- Sí, per configuració a al manifest.
- Com puc detectar si el teclat és visible actualment?
- Ús per comparar l'àrea visible de la pantalla amb l'alçada de la vista arrel.
- És possible amagar el teclat de manera programàtica amb un clic de botó?
- Sí, truca al botó .
En conclusió, la gestió del teclat suau d'Android és crucial per millorar l'experiència de l'usuari a la vostra aplicació. Mitjançant l'ús de , podeu ocultar o mostrar el teclat amb programació segons les interaccions de l'usuari, com ara els clics als botons o els esdeveniments tàctils. A més, configurar el L'atribut del vostre fitxer de manifest us permet controlar el comportament del teclat amb més precisió. La implementació d'aquests mètodes garanteix que la presència del teclat no interfereixi amb la usabilitat de l'aplicació, proporcionant una interfície suau i intuïtiva per als usuaris.