Juhend Androidi pehme klaviatuuri programmiliseks peitmiseks

Java, Kotlin

Sissejuhatus Androidi klaviatuuri peitmisse

Androidi rakenduste arendamisel on aegu, kus peate pehme klaviatuuri programmiliselt peitma. See on eriti kasulik, kui teie paigutuses on Redigeeri tekst ja nupp ja soovite, et klaviatuur pärast nupu klõpsamist kaoks.

Selles juhendis uurime lihtsaid ja tõhusaid viise selle funktsiooni saavutamiseks. Esitatud samme järgides saate parandada oma rakenduse kasutuskogemust, hallates tõhusalt klaviatuuri nähtavust.

Käsk Kirjeldus
getSystemService Otsib süsteemitaseme teenuse nime järgi; siin kasutatakse seda klaviatuuri haldamiseks mõeldud InputMethodManageri hankimiseks.
hideSoftInputFromWindow Peidab pehme klaviatuuri akna eest, võttes parameetritena märgi ja lipud.
getCurrentFocus Tagastab tegevuses praeguse fokuseeritud vaate, mida kasutatakse klaviatuuri peitmise koha määramiseks.
onClickListener Seadistab tagasihelistamise, mis käivitub vaatel (nt nupul) klõpsamisel.
dispatchTouchEvent Peatab puuteekraani liikumise sündmused enne nende aknale saatmist, mis on kasulik kohandatud puutekäsitluse jaoks.
windowToken Tagastab klaviatuuri peitmiseks vajaliku märgi, mis identifitseerib üheselt vaatega seotud akna.

Androidi klaviatuuri peitmise mõistmine

Java näites impordib skript kõigepealt vajalikud klassid, näiteks , ja . The onCreate meetod seadistab paigutuse ja lähtestab ja . Nupule klõpsamisel kuvatakse meetodit nimetatakse. See meetod hangib praeguse fokuseeritud vaate kasutades getCurrentFocus, ja kui vaade on teravustatud, kasutab see pehme klaviatuuri peitmiseks helistades . See sulgeb tõhusalt klaviatuuri, kui nuppu klõpsate.

Kotlini näites saavutatakse sarnane funktsionaalsus. Skript alistab meetod sisuvaate määramiseks ja lähtestamiseks ja . Nupuklõpsu kuulaja helistab hideKeyboard meetod. Lisaks on meetod on tühistatud, et peita klaviatuur väljast puudutamisel. See meetod kontrollib, kas vaade on teravustatud, ja peidab kasutatava klaviatuuri . Need skriptid parandavad kasutajakogemust, haldades tõhusalt pehme klaviatuuri nähtavust.

Androidi pehme klaviatuuri programmiline sulgemine

Java Androidi arendamiseks

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

Väljas puudutamisel peitke klaviatuur

Kotlin Androidi arendamiseks

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äiustatud tehnikad Androidi klaviatuuri haldamiseks

Androidi pehme klaviatuuri haldamise teine ​​oluline aspekt on selle nähtavuse käsitlemine vastusena erinevatele kasutaja interaktsioonidele ja konfiguratsioonidele. Näiteks võite soovida, et klaviatuur ilmuks automaatselt, kui fookuse või varjamise tagamiseks erinevate kasutajaliidese komponentide vahel navigeerimisel. Seda on võimalik saavutada kasutades koos elutsükli tagasihelistamisega nagu ja onPause.

Lisaks saate reguleerida klaviatuuri käitumist atribuut teie tegevuse manifesti failis. See atribuut võimaldab teil määrata, kas klaviatuur peaks kohandama tegevuse paigutust või jääma peidetuks, kuni seda selgesõnaliselt nõutakse. Nende konfiguratsioonide kasutamine võib kasutajakogemust märkimisväärselt parandada, pakkudes intuitiivsemat ja tundlikumat liidest.

  1. Kuidas peita klaviatuur, kui an kaotab fookuse?
  2. Saate tühistada kuulaja ja helistada .
  3. Kas ma saan klaviatuuri automaatselt kuvada, kui kogub tähelepanu?
  4. Jah, kasuta aastal kuulaja.
  5. Kuidas ma saan klaviatuuri fragmenti peita?
  6. Helistama fragmendi vaate kontekstis.
  7. Mis on kasutatud?
  8. See määrab, kuidas klaviatuur toimib tegevuse paigutusega (nt suuruse muutmine või peidetuks jäämine).
  9. Kuidas peita klaviatuuri, kui seda puudutada väljaspool ?
  10. Alistada oma tegevuses, et kontrollida puutesündmusi väljaspool .
  11. Kas ma saan sundida klaviatuuri varjatuks jääma?
  12. Jah, seadistusega juurde manifestis.
  13. Kuidas teha kindlaks, kas klaviatuur on hetkel nähtav?
  14. Kasuta et võrrelda ekraani nähtavat ala juurvaate kõrgusega.
  15. Kas nupuvajutusega on võimalik klaviatuuri programmiliselt peita?
  16. Jah, helista nuppude sees .

Kokkuvõtteks võib öelda, et Androidi pehme klaviatuuri haldamine on teie rakenduse kasutajakogemuse parandamiseks ülioluline. Kasutades , saate klaviatuuri programmiliselt peita või kuvada kasutaja interaktsioonide (nt nupuklõpsude või puutesündmuste) põhjal. Lisaks konfigureerides manifesti faili atribuut võimaldab teil klaviatuuri käitumist täpsemalt juhtida. Nende meetodite rakendamine tagab, et klaviatuuri olemasolu ei sega rakenduse kasutatavust, pakkudes kasutajatele sujuvat ja intuitiivset liidest.