Skjul det myke Android-tastaturet på en programmert klikk og berøring utenfor

Java

Administrere det myke tastaturet for Android

Arbeid med Android-applikasjoner krever ofte brukerinndata via det virtuelle tastaturet. I scenarier der du har en EditText og en knapp i oppsettet ditt, blir det viktig å administrere tastaturet effektivt. Nærmere bestemt, etter å ha skrevet inn tekst og klikket på knappen, vil du kanskje skjule tastaturet for å forbedre brukeropplevelsen.

Denne artikkelen vil gi et enkelt og praktisk eksempel på hvordan du lukker det myke Android-tastaturet programmatisk når brukeren samhandler med områder utenfor tastaturet. Ved å følge trinnene som er skissert, kan du forbedre brukervennligheten og grensesnittet til Android-applikasjonen din.

Kommando Beskrivelse
getSystemService Henter en tjeneste på systemnivå etter navn, for eksempel InputMethodManager for håndtering av inndatametoder.
hideSoftInputFromWindow Forespørsler om å skjule myktastaturvinduet som for øyeblikket godtar inndata.
getWindowToken Returnerer vindustokenet knyttet til visningen, nødvendig for å skjule tastaturet.
onTouchEvent Håndterer bevegelseshendelser med berøringsskjerm, brukes her for å skjule tastaturet ved berøring utenfor.
findViewById Finner og returnerer en visning med den gitte ID-en, brukt til å referere til UI-elementer som EditText og Button.
setOnClickListener Angir en tilbakeringing som vil bli påkalt når visningen klikkes, brukes til å utløse tastaturskjul.

Forstå implementeringen

Skriptene som følger med demonstrerer hvordan du programmatisk skjuler det myke Android-tastaturet når du samhandler med brukergrensesnittet, spesielt etter å ha skrevet inn tekst i en feltet og klikk på a . Java- og Kotlin-eksemplene bruker flere viktige Android-komponenter og -metoder. Begge skriptene starter med å importere nødvendige klasser som f.eks , Context, , og ulike UI-komponenter. I metode, brukes til å koble sammen EditText og fra layout til koden. De metoden settes deretter på knappen for å utløse funksjon når du klikker.

I begge implementeringer er funksjonen bruker for å hente service. Metoden hideSoftInputFromWindow kalles da med av for å skjule det myke tastaturet. I tillegg har metoden overstyres for å sikre at tastaturet er skjult når brukeren berører utenfor inntastingsfeltet. Denne tilnærmingen forbedrer brukeropplevelsen ved å forhindre at tastaturet hindrer visningen unødvendig. Ved å bruke disse metodene og håndtere berøringshendelsene på riktig måte, administrerer skriptene det myke tastaturet effektivt i en Android-applikasjon.

Skjuler det myke Android-tastaturet på knappen Klikk og berør utenfor inndatafeltet

Bruke Java i Android-utvikling

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
 
public class MainActivity extends Activity {
    private EditText editText;
    private Button button;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        editText = findViewById(R.id.editText);
        button = findViewById(R.id.button);
 
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                hideKeyboard();
            }
        });
    }
 
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        hideKeyboard();
        return super.onTouchEvent(event);
    }
 
    private void hideKeyboard() {
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
    }
}

Håndtere myk tastaturavvisning i Android ved å bruke Kotlin

Bruker Kotlin for Android-apputvikling

import android.app.Activity
import android.content.Context
import android.os.Bundle
import android.view.MotionEvent
import android.view.View
import android.view.inputmethod.InputMethodManager
import android.widget.Button
import android.widget.EditText
 
class MainActivity : Activity() {
    private lateinit var editText: EditText
    private lateinit var button: Button
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        editText = findViewById(R.id.editText)
        button = findViewById(R.id.button)
 
        button.setOnClickListener { hideKeyboard() }
    }
 
    override fun onTouchEvent(event: MotionEvent): Boolean {
        hideKeyboard()
        return super.onTouchEvent(event)
    }
 
    private fun hideKeyboard() {
        val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        imm.hideSoftInputFromWindow(editText.windowToken, 0)
    }
}

Utforske avanserte teknikker for tastaturadministrasjon

Utover de grunnleggende metodene for å skjule det myke Android-tastaturet, kan utviklere implementere mer avanserte teknikker for å forbedre brukeropplevelsen. En slik metode innebærer å bruke på flere UI-komponenter for å oppdage berøringshendelser og skjule tastaturet tilsvarende. Denne tilnærmingen sikrer at tastaturet er skjult når brukeren samhandler med noen del av skjermen utenfor . I tillegg kan styring av tastatursynlighet kombineres med fokuseringslogikk, der fokus flyttes bort fra til en annen komponent, og ber tastaturet skjules automatisk.

En annen teknikk er å bruke på . Denne lytteren kan oppdage når mister fokus, og skjuler deretter tastaturet. Denne metoden er spesielt nyttig i skjemaer eller dataregistreringsapplikasjoner der flere inndatafelt er involvert. Dessuten, for en mer sømløs brukeropplevelse, kan utviklere bruke SoftKeyboardStateWatcher, en tilpasset implementering som sporer tastaturets synlighetsendringer og reagerer deretter. Ved å integrere slike avanserte teknikker kan utviklere lage mer intuitive og brukervennlige Android-applikasjoner.

  1. Hvordan kan jeg oppdage når tastaturet vises eller skjules?
  2. Du kan bruke en for å spore tastaturets synlighetsendringer.
  3. Er det mulig å skjule tastaturet automatisk når en bruker ruller?
  4. Ja, du kan implementere en på rullevisningen for å skjule tastaturet under rulling.
  5. Kan jeg programmatisk vise tastaturet når en er fokusert?
  6. Ja, bruk for å vise tastaturet når får fokus.
  7. Hvordan skjuler jeg tastaturet når brukeren trykker på tilbakeknappen?
  8. Overstyr metode og skjule tastaturet ved hjelp av .
  9. Kan jeg tilpasse tastaturoppsettet?
  10. Ja, Android tillater egendefinerte tastaturoppsett .
  11. Hva er den beste måten å skjule tastaturet i et fragment?
  12. Bruk å få i et fragment.
  13. Hvordan kan jeg skjule tastaturet når jeg bytter mellom fragmenter?
  14. Implementer a med en lytter for å skjule tastaturet under byttet.
  15. Er det mulig å animere skjulingen av tastaturet?
  16. Ja, du kan animere visningen som inneholder for å skape en jevn skjuleeffekt.

Effektiv administrasjon av det myke Android-tastaturet er avgjørende for å lage intuitive applikasjoner. Ved å bruke getSystemService for å hente InputMethodManager og hideSoftInputFromWindow for å skjule tastaturet, kan utviklere kontrollere når tastaturet vises og forsvinner. Implementering av berørings- og klikklyttere forbedrer denne kontrollen ytterligere, og sikrer at tastaturet skjules på riktig måte når det samhandler med andre brukergrensesnittelementer. Disse teknikkene forbedrer brukeropplevelsen ved å forhindre at tastaturet hindrer viktig innhold eller UI-elementer.