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 , , in . The onCreate metoda nastavi postavitev in inicializira in . Ko kliknete gumb, se metoda se imenuje. Ta metoda pridobi trenutni fokusni pogled z uporabo getCurrentFocus, in če je pogled fokusiran, uporablja da s klicem skrijete mehko tipkovnico . To dejansko zapre tipkovnico, ko kliknete gumb.
V primeru Kotlina je dosežena podobna funkcionalnost. Skript preglasi način za nastavitev pogleda vsebine in inicializacijo in . Poslušalec klikov gumba pokliče hideKeyboard metoda. Poleg tega je metoda je preglasena, da skrije tipkovnico, ko se dotaknete zunaj. Ta metoda preveri, ali je pogled fokusiran, in skrije tipkovnico z uporabo . 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 pridobi fokus ali zagotovi, da se skrije pri krmarjenju med različnimi komponentami uporabniškega vmesnika. To je mogoče doseči z uporabo skupaj s povratnimi klici življenjskega cikla, kot je npr in onPause.
Poleg tega lahko nadzirate delovanje tipkovnice s prilagajanjem 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.
- Kako skrijem tipkovnico, ko je izgubi fokus?
- Lahko preglasite poslušalec od in pokliči .
- Ali lahko samodejno prikažem tipkovnico, ko je pridobi fokus?
- Da, uporabi v poslušalec.
- Kako lahko skrijem tipkovnico v fragment?
- Pokliči v kontekstu pogleda fragmenta.
- Kaj je uporablja za?
- Določa, kako tipkovnica vpliva na razporeditev dejavnosti, na primer spreminjanje velikosti ali ostane skrita.
- Kako skrijem tipkovnico, ko se dotikam zunaj ?
- Preglasitev v vaši dejavnosti, da preverite dogodke dotika zunaj .
- Ali lahko prisilim, da tipkovnica ostane skrita?
- Da, z nastavitvijo do v manifestu.
- Kako ugotovim, ali je tipkovnica trenutno vidna?
- Uporaba da primerjate vidno območje zaslona z višino korenskega pogleda.
- Ali je mogoče programsko skriti tipkovnico ob kliku gumba?
- Ja, pokliči v gumbih .
Skratka, upravljanje mehke tipkovnice Android je ključnega pomena za izboljšanje uporabniške izkušnje v vaši aplikaciji. Z uporabo , lahko programsko skrijete ali prikažete tipkovnico glede na uporabniške interakcije, kot so kliki gumbov ali dogodki na dotik. Poleg tega konfiguracija 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.