Introduksjon til å skjule Android-tastatur
Når du utvikler Android-applikasjoner, er det tider når du trenger å programmatisk skjule det myke tastaturet. Dette er spesielt nyttig når du har en EditText og en knapp i layouten og vil at tastaturet skal forsvinne etter å ha klikket på knappen.
I denne veiledningen vil vi utforske enkle og effektive måter å oppnå denne funksjonaliteten på. Ved å følge trinnene som er gitt, vil du kunne forbedre brukeropplevelsen av appen din ved å administrere tastatursynligheten effektivt.
Kommando | Beskrivelse |
---|---|
getSystemService | Henter en tjeneste på systemnivå etter navn; her brukes den til å få InputMethodManager for å administrere tastaturet. |
hideSoftInputFromWindow | Skjuler det myke tastaturet fra vinduet, tar et token og flagger som parametere. |
getCurrentFocus | Returnerer gjeldende fokusert visning i aktiviteten, brukt til å bestemme hvor tastaturet skal gjemme seg fra. |
onClickListener | Setter opp en tilbakeringing som utløses når en visning (f.eks. Knapp) klikkes. |
dispatchTouchEvent | Avskjærer berøringsskjermbevegelser før de sendes til vinduet, nyttig for tilpasset berøringshåndtering. |
windowToken | Returnerer et token som unikt identifiserer vinduet knyttet til visningen, nødvendig for å skjule tastaturet. |
Forstå hvordan du skjuler Android-tastaturet
I Java-eksemplet importerer skriptet først nødvendige klasser som f.eks , , og . De onCreate metoden setter opp oppsettet og initialiserer og . Når knappen klikkes, vises metode kalles. Denne metoden henter den gjeldende fokuserte visningen ved hjelp av getCurrentFocus, og hvis en visning er fokusert, bruker den for å skjule det myke tastaturet ved å ringe . Dette lukker effektivt tastaturet når knappen klikkes.
I Kotlin-eksemplet oppnås lignende funksjonalitet. Skriptet overstyrer metode for å angi innholdsvisningen og initialisere og . Knappen klikk lytteren kaller hideKeyboard metode. I tillegg har metoden overstyres for å skjule tastaturet når du berører utenfor. Denne metoden sjekker om en visning er fokusert og skjuler tastaturet ved hjelp av . Disse skriptene forbedrer brukeropplevelsen ved å administrere synligheten til det myke tastaturet effektivt.
Lukker det myke Android-tastaturet programmatisk
Java for Android-utvikling
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);
}
}
}
Skjul tastaturet ved berøring utenfor
Kotlin for Android-utvikling
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)
}
}
Avanserte teknikker for å administrere Android-tastatur
Et annet viktig aspekt ved å administrere det myke Android-tastaturet er å håndtere synligheten som svar på ulike brukerinteraksjoner og konfigurasjoner. For eksempel vil du kanskje at tastaturet skal vises automatisk når en får fokus eller for å sikre at den skjuler seg når du navigerer mellom ulike UI-komponenter. Dette kan oppnås ved hjelp av sammen med livssyklus tilbakeringinger som f.eks og onPause.
Videre kan du kontrollere tastaturoppførselen ved å justere attributtet i aktivitetens manifestfil. Dette attributtet lar deg spesifisere om tastaturet skal justere oppsettet til aktiviteten eller forbli skjult til det blir eksplisitt bedt om det. Å bruke disse konfigurasjonene kan forbedre brukeropplevelsen betydelig ved å tilby et mer intuitivt og responsivt grensesnitt.
- Hvordan skjuler jeg tastaturet når en mister fokus?
- Du kan overstyre lytteren til og ring .
- Kan jeg automatisk vise tastaturet når en får fokus?
- Ja, bruk i lytter.
- Hvordan kan jeg skjule tastaturet i et fragment?
- Anrop i fragmentets syns kontekst.
- Hva er brukes til?
- Den spesifiserer hvordan tastaturet samhandler med aktivitetens layout, for eksempel å endre størrelse eller forbli skjult.
- Hvordan skjuler jeg tastaturet når jeg berører utenfor en ?
- Overstyring i aktiviteten din for å se etter berøringshendelser utenfor .
- Kan jeg tvinge tastaturet til å forbli skjult?
- Ja, ved å stille inn til i manifestet.
- Hvordan oppdager jeg om tastaturet er synlig for øyeblikket?
- Bruk for å sammenligne det synlige området på skjermen med rotvisningens høyde.
- Er det mulig å skjule tastaturet programmatisk ved et knappeklikk?
- Ja, ring i knappens .
Avslutningsvis er administrasjon av det myke Android-tastaturet avgjørende for å forbedre brukeropplevelsen i applikasjonen din. Ved bruk av , kan du programmatisk skjule eller vise tastaturet basert på brukerinteraksjoner som knappeklikk eller berøringshendelser. I tillegg konfigurerer du attributtet i manifestfilen lar deg kontrollere tastaturets oppførsel mer presist. Implementering av disse metodene sikrer at tastaturets tilstedeværelse ikke forstyrrer appens brukervennlighet, og gir et jevnt og intuitivt grensesnitt for brukerne.