Uvod v skrivanje tipkovnice Android
Ko razvijate aplikacije za Android, morate včasih programsko skriti mehko tipkovnico. To je še posebej uporabno, če imate v postavitvi EditText in gumb in želite, da tipkovnica izgine po kliku gumba.
V tem priročniku bomo raziskali preproste in učinkovite načine za doseganje te funkcije. Z upoštevanjem navedenih korakov boste lahko izboljšali uporabniško izkušnjo svoje aplikacije z učinkovitim upravljanjem vidnosti tipkovnice.
Ukaz | Opis |
---|---|
getSystemService | Pridobi storitev na sistemski ravni po imenu; tukaj se uporablja za pridobitev InputMethodManager za upravljanje tipkovnice. |
hideSoftInputFromWindow | Skrije programsko tipkovnico pred oknom, pri čemer kot parametre vzame žeton in zastavice. |
getCurrentFocus | Vrne trenutni pogled v fokusu v dejavnosti, ki se uporablja za določanje, od kod naj se tipkovnica skrije. |
onClickListener | Nastavi povratni klic, ki se sproži, ko se klikne pogled (npr. gumb). |
dispatchTouchEvent | Prestreže dogodke gibanja zaslona na dotik, preden so poslani v okno, kar je uporabno za upravljanje z dotikom po meri. |
windowToken | Vrne žeton, ki enolično identificira okno, povezano s pogledom, potrebno za skrivanje tipkovnice. |
Razumevanje, kako skriti tipkovnico Android
V primeru Jave skript najprej uvozi potrebne razrede, kot je npr InputMethodManager, View, in EditText. The onCreate metoda nastavi postavitev in inicializira EditText in Button. Ko kliknete gumb, se hideKeyboard metoda se imenuje. Ta metoda pridobi trenutni fokusni pogled z uporabo getCurrentFocus, in če je pogled fokusiran, uporablja InputMethodManager da s klicem skrijete mehko tipkovnico hideSoftInputFromWindow. To dejansko zapre tipkovnico, ko kliknete gumb.
V primeru Kotlina je dosežena podobna funkcionalnost. Skript preglasi onCreate način za nastavitev pogleda vsebine in inicializacijo EditText in Button. Poslušalec klikov gumba pokliče hideKeyboard metoda. Poleg tega je dispatchTouchEvent metoda je preglasena, da skrije tipkovnico, ko se dotaknete zunaj. Ta metoda preveri, ali je pogled fokusiran, in skrije tipkovnico z uporabo InputMethodManager. Ti skripti izboljšajo uporabniško izkušnjo z učinkovitim upravljanjem vidnosti mehke tipkovnice.
Programsko zapiranje mehke tipkovnice Android
Java za Android razvoj
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);
}
}
}
Skrij tipkovnico ob dotiku z zunanje strani
Kotlin za razvoj Androida
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)
}
}
Napredne tehnike za upravljanje tipkovnice Android
Drug pomemben vidik upravljanja mehke tipkovnice Android je upravljanje njene vidnosti kot odziv na različne uporabniške interakcije in konfiguracije. Na primer, morda želite, da se tipkovnica samodejno prikaže, ko se EditText pridobi fokus ali zagotovi, da se skrije pri krmarjenju med različnimi komponentami uporabniškega vmesnika. To je mogoče doseči z uporabo InputMethodManager skupaj s povratnimi klici življenjskega cikla, kot je npr onResume in onPause.
Poleg tega lahko nadzirate delovanje tipkovnice s prilagajanjem android:windowSoftInputMode v datoteki manifesta vaše dejavnosti. Ta atribut vam omogoča, da določite, ali naj tipkovnica prilagodi postavitev dejavnosti ali ostane skrita, dokler ni izrecno zahtevana. Uporaba teh konfiguracij lahko bistveno izboljša uporabniško izkušnjo z zagotavljanjem bolj intuitivnega in odzivnega vmesnika.
Pogosta vprašanja o skrivanju tipkovnice Android
- Kako skrijem tipkovnico, ko je EditText izgubi fokus?
- Lahko preglasite onFocusChange poslušalec od EditText in pokliči InputMethodManager.hideSoftInputFromWindow.
- Ali lahko samodejno prikažem tipkovnico, ko je EditText pridobi fokus?
- Da, uporabi InputMethodManager.showSoftInput v onFocusChange poslušalec.
- Kako lahko skrijem tipkovnico v fragment?
- Pokliči InputMethodManager.hideSoftInputFromWindow v kontekstu pogleda fragmenta.
- Kaj je android:windowSoftInputMode uporablja za?
- Določa, kako tipkovnica vpliva na razporeditev dejavnosti, na primer spreminjanje velikosti ali ostane skrita.
- Kako skrijem tipkovnico, ko se dotikam zunaj EditText?
- Preglasitev dispatchTouchEvent v vaši dejavnosti, da preverite dogodke dotika zunaj EditText.
- Ali lahko prisilim, da tipkovnica ostane skrita?
- Da, z nastavitvijo android:windowSoftInputMode do stateHidden v manifestu.
- Kako ugotovim, ali je tipkovnica trenutno vidna?
- Uporaba getWindowVisibleDisplayFrame da primerjate vidno območje zaslona z višino korenskega pogleda.
- Ali je mogoče programsko skriti tipkovnico ob kliku gumba?
- Ja, pokliči InputMethodManager.hideSoftInputFromWindow v gumbih onClickListener.
Ključni zaključki o skrivanju tipkovnice Android
Skratka, upravljanje mehke tipkovnice Android je ključnega pomena za izboljšanje uporabniške izkušnje v vaši aplikaciji. Z uporabo InputMethodManager, lahko programsko skrijete ali prikažete tipkovnico glede na uporabniške interakcije, kot so kliki gumbov ali dogodki na dotik. Poleg tega konfiguracija android:windowSoftInputMode v datoteki manifesta vam omogoča natančnejši nadzor nad delovanjem tipkovnice. Izvedba teh metod zagotavlja, da prisotnost tipkovnice ne moti uporabnosti aplikacije, uporabnikom pa zagotavlja gladek in intuitiven vmesnik.