Johdanto Android-näppäimistön piilottamiseen
Android-sovelluksia kehitettäessä on aikoja, jolloin sinun on piilotettava ohjelmallisesti pehmeä näppäimistö. Tämä on erityisen hyödyllistä, kun asettelussasi on EditText ja Button ja haluat näppäimistön katoavan painikkeen napsautuksen jälkeen.
Tässä oppaassa tutkimme yksinkertaisia ja tehokkaita tapoja saavuttaa tämä toiminto. Noudattamalla annettuja ohjeita voit parantaa sovelluksesi käyttökokemusta hallitsemalla näppäimistön näkyvyyttä tehokkaasti.
Komento | Kuvaus |
---|---|
getSystemService | Hakee järjestelmätason palvelun nimellä; täällä sitä käytetään InputMethodManagerin saamiseksi näppäimistön hallintaan. |
hideSoftInputFromWindow | Piilottaa pehmeän näppäimistön ikkunasta ja ottaa tunnuksen ja liput parametreina. |
getCurrentFocus | Palauttaa toiminnon nykyisen kohdistetun näkymän, jota käytetään määrittämään, mistä näppäimistön pitäisi piiloutua. |
onClickListener | Määrittää takaisinkutsun, joka käynnistyy, kun näkymää (esim. painiketta) napsautetaan. |
dispatchTouchEvent | Sieppaa kosketusnäytön liiketapahtumat ennen kuin ne lähetetään ikkunaan, mikä on hyödyllistä mukautetussa kosketuskäsittelyssä. |
windowToken | Palauttaa näppäimistön piilottamiseen tarvittavan tunnuksen, joka yksilöi näkymään liittyvän ikkunan. |
Android-näppäimistön piilottaminen
Java-esimerkissä komentosarja tuo ensin tarvittavat luokat, kuten InputMethodManager, View, ja EditText. The onCreate menetelmä määrittää asettelun ja alustaa sen EditText ja Button. Kun painiketta napsautetaan, hideKeyboard menetelmää kutsutaan. Tämä menetelmä hakee nykyisen kohdistetun näkymän käyttämällä getCurrentFocus, ja jos näkymä on tarkennettu, se käyttää InputMethodManager piilottaaksesi pehmeän näppäimistön soittamalla hideSoftInputFromWindow. Tämä sulkee näppäimistön tehokkaasti, kun painiketta napsautetaan.
Kotlin-esimerkissä saavutetaan samanlainen toiminnallisuus. Käsikirjoitus ohittaa onCreate tapa asettaa sisältönäkymä ja alustaa EditText ja Button. Painikeklikkauksen kuuntelija kutsuu hideKeyboard menetelmä. Lisäksi, dispatchTouchEvent Menetelmä ohitetaan piilottaaksesi näppäimistön, kun kosketat ulkoa. Tämä menetelmä tarkistaa, onko näkymä kohdistettu, ja piilottaa näppäimistön InputMethodManager. Nämä komentosarjat parantavat käyttökokemusta hallitsemalla pehmeän näppäimistön näkyvyyttä tehokkaasti.
Androidin pehmeän näppäimistön sulkeminen ohjelmallisesti
Java Android-kehitykseen
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);
}
}
}
Piilota näppäimistö, kun kosketat ulkoa
Kotlin Android-kehitykseen
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)
}
}
Kehittyneet tekniikat Android-näppäimistön hallintaan
Toinen tärkeä näkökohta Android-pehmeän näppäimistön hallinnassa on sen näkyvyyden käsittely vastauksena erilaisiin käyttäjien vuorovaikutuksiin ja kokoonpanoihin. Voit esimerkiksi haluta, että näppäimistö tulee automaattisesti näkyviin, kun EditText tarkentaa tai varmistaa sen piilottamisen navigoidessasi eri käyttöliittymäkomponenttien välillä. Tämä voidaan saavuttaa käyttämällä InputMethodManager sekä elinkaaripuhelut, kuten onResume ja onPause.
Lisäksi voit hallita näppäimistön toimintaa säätämällä android:windowSoftInputMode määrite toimintosi luettelotiedostossa. Tämän määritteen avulla voit määrittää, tuleeko näppäimistön säätää toiminnon asettelua vai pysyä piilossa, kunnes sitä erikseen pyydetään. Näiden kokoonpanojen hyödyntäminen voi parantaa merkittävästi käyttökokemusta tarjoamalla intuitiivisemman ja reagoivamman käyttöliittymän.
Yleisiä kysymyksiä Android-näppäimistön piilottamisesta
- Kuinka piilotan näppäimistön, kun an EditText menettää keskittymisen?
- Voit ohittaa onFocusChange kuuntelija EditText ja soita InputMethodManager.hideSoftInputFromWindow.
- Voinko näyttää näppäimistön automaattisesti, kun EditText saa keskittymistä?
- Kyllä, käytä InputMethodManager.showSoftInput in onFocusChange kuuntelija.
- Kuinka voin piilottaa näppäimistön fragmentiksi?
- Puhelu InputMethodManager.hideSoftInputFromWindow fragmentin näkemyksen kontekstissa.
- Mikä on android:windowSoftInputMode käytetty?
- Se määrittää, kuinka näppäimistö on vuorovaikutuksessa toiminnon asettelun kanssa, kuten koon muuttaminen tai piilottaminen.
- Kuinka piilotan näppäimistön, kun kosketat sen ulkopuolella EditText?
- Ohittaa dispatchTouchEvent toiminnassasi tarkistaaksesi kosketustapahtumat alueen ulkopuolella EditText.
- Voinko pakottaa näppäimistön pysymään piilossa?
- Kyllä, asetuksella android:windowSoftInputMode to stateHidden manifestissa.
- Kuinka tunnistan, onko näppäimistö tällä hetkellä näkyvissä?
- Käyttää getWindowVisibleDisplayFrame verrata näytön näkyvää aluetta juurinäkymän korkeuteen.
- Onko mahdollista piilottaa näppäimistö ohjelmallisesti napin painalluksella?
- Kyllä, soita InputMethodManager.hideSoftInputFromWindow painikkeessa onClickListener.
Tärkeimmät takeat Android-näppäimistön piilottamisesta
Yhteenvetona voidaan todeta, että Androidin pehmeän näppäimistön hallinta on ratkaisevan tärkeää sovelluksesi käyttökokemuksen parantamiseksi. Käyttämällä InputMethodManager, voit ohjelmallisesti piilottaa tai näyttää näppäimistön käyttäjien toimien, kuten painikkeiden napsautusten tai kosketustapahtumien, perusteella. Lisäksi määrittämällä android:windowSoftInputMode Attribuutilla luettelotiedostossasi voit hallita näppäimistön toimintaa tarkemmin. Näiden menetelmien käyttöönotto varmistaa, että näppäimistön läsnäolo ei häiritse sovelluksen käytettävyyttä, mikä tarjoaa käyttäjille sujuvan ja intuitiivisen käyttöliittymän.