Guide til at skjule Android Soft Keyboard Programmatisk

Java, Kotlin

Introduktion til at skjule Android-tastatur

Når du udvikler Android-applikationer, er der tidspunkter, hvor du har brug for at gemme det bløde tastatur programmæssigt. Dette er især nyttigt, når du har en EditText og en knap i dit layout og ønsker, at tastaturet skal forsvinde efter at have klikket på knappen.

I denne guide vil vi udforske enkle og effektive måder at opnå denne funktionalitet på. Ved at følge de angivne trin vil du være i stand til at forbedre brugeroplevelsen af ​​din app ved at administrere tastaturets synlighed effektivt.

Kommando Beskrivelse
getSystemService Henter en tjeneste på systemniveau ved navn; her bruges den til at få InputMethodManager til at styre tastaturet.
hideSoftInputFromWindow Skjuler det bløde tastatur fra vinduet, tager et token og markerer som parametre.
getCurrentFocus Returnerer den aktuelle fokuserede visning i aktiviteten, der bruges til at bestemme, hvor tastaturet skal gemme sig fra.
onClickListener Opretter et tilbagekald, der udløses, når der klikkes på en visning (f.eks. knap).
dispatchTouchEvent Opsnapper berøringsskærmbevægelseshændelser, før de sendes til vinduet, nyttigt til brugerdefineret berøringshåndtering.
windowToken Returnerer et token, der entydigt identificerer det vindue, der er knyttet til visningen, som kræves for at skjule tastaturet.

Forstå, hvordan du skjuler Android-tastaturet

I Java-eksemplet importerer scriptet først nødvendige klasser som f.eks , , og . Det onCreate metoden opsætter layoutet og initialiserer og . Når der trykkes på knappen, vises metode kaldes. Denne metode henter den aktuelle fokuserede visning vha getCurrentFocus, og hvis en visning er fokuseret, bruger den for at skjule det bløde tastatur ved at ringe . Dette lukker effektivt tastaturet, når der trykkes på knappen.

I Kotlin-eksemplet opnås lignende funktionalitet. Scriptet tilsidesætter metode til at indstille indholdsvisningen og initialisere og . Knappen klik lytteren kalder hideKeyboard metode. Derudover metode tilsidesættes for at skjule tastaturet, når du rører udenfor. Denne metode kontrollerer, om en visning er fokuseret og skjuler tastaturet ved hjælp af . Disse scripts forbedrer brugeroplevelsen ved at administrere synligheden af ​​det bløde tastatur effektivt.

Programmatisk lukning af Android Soft Keyboard

Java til Android udvikling

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 udenfor

Kotlin til Android-udvikling

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)
    }
}

Avancerede teknikker til styring af Android-tastatur

Et andet vigtigt aspekt ved styring af det bløde Android-tastatur er at håndtere dets synlighed som svar på forskellige brugerinteraktioner og konfigurationer. For eksempel vil du måske have, at tastaturet automatisk vises, når en får fokus eller for at sikre, at den skjuler sig, når du navigerer mellem forskellige UI-komponenter. Dette kan opnås ved hjælp af sammen med livscyklustilbagekald som f.eks og onPause.

Desuden kan du styre tastaturets adfærd ved at justere attribut i din aktivitets manifestfil. Denne egenskab giver dig mulighed for at angive, om tastaturet skal justere layoutet af aktiviteten eller forblive skjult, indtil det udtrykkeligt anmodes om det. Brug af disse konfigurationer kan forbedre brugeroplevelsen markant ved at give en mere intuitiv og responsiv grænseflade.

  1. Hvordan skjuler jeg tastaturet, når en mister fokus?
  2. Du kan tilsidesætte lytter af og ring .
  3. Kan jeg automatisk vise tastaturet, når en får fokus?
  4. Ja, brug i lytter.
  5. Hvordan kan jeg skjule tastaturet i et fragment?
  6. Opkald i fragmentets synspunkts sammenhæng.
  7. Hvad er anvendes til?
  8. Det specificerer, hvordan tastaturet interagerer med aktivitetens layout, såsom at ændre størrelse eller forblive skjult.
  9. Hvordan skjuler jeg tastaturet, når jeg rører uden for en ?
  10. Tilsidesæt i din aktivitet for at tjekke for berøringshændelser uden for .
  11. Kan jeg tvinge tastaturet til at forblive skjult?
  12. Ja, ved at indstille til i manifestet.
  13. Hvordan finder jeg ud af, om tastaturet er synligt i øjeblikket?
  14. Brug for at sammenligne det synlige område af skærmen med rodvisningens højde.
  15. Er det muligt at skjule tastaturet programmatisk ved et klik på en knap?
  16. Ja, ring i knappens .

Afslutningsvis er administration af det bløde Android-tastatur afgørende for at forbedre brugeroplevelsen i din applikation. Ved hjælp af , kan du programmæssigt skjule eller vise tastaturet baseret på brugerinteraktioner såsom knapklik eller berøringshændelser. Derudover konfigurerer du attribut i din manifestfil giver dig mulighed for at kontrollere tastaturets adfærd mere præcist. Implementering af disse metoder sikrer, at tastaturets tilstedeværelse ikke forstyrrer appens anvendelighed, hvilket giver en smidig og intuitiv grænseflade for brugerne.