„Android“ klaviatūros slėpimo įvadas
Kuriant Android programas, kartais reikia programiškai paslėpti minkštąją klaviatūrą. Tai ypač naudinga, kai jūsų išdėstyme yra EditText ir Button ir norite, kad klaviatūra išnyktų spustelėjus mygtuką.
Šiame vadove išnagrinėsime paprastus ir veiksmingus būdus, kaip pasiekti šią funkciją. Atlikdami nurodytus veiksmus, galėsite pagerinti programos naudotojo patirtį efektyviai tvarkydami klaviatūros matomumą.
komandą | apibūdinimas |
---|---|
getSystemService | Nuskaito sistemos lygio paslaugą pagal pavadinimą; čia jis naudojamas norint gauti „InputMethodManager“, skirtą klaviatūrai valdyti. |
hideSoftInputFromWindow | Slepia minkštąją klaviatūrą nuo lango, kaip parametrus paimdamas prieigos raktą ir vėliavėles. |
getCurrentFocus | Grąžina dabartinį sufokusuotą veiklos rodinį, naudojamą nustatant, kur klaviatūra turėtų pasislėpti. |
onClickListener | Nustatomas atgalinis skambutis, kuris suaktyvinamas spustelėjus rodinį (pvz., mygtuką). |
dispatchTouchEvent | Sulaiko jutiklinio ekrano judesio įvykius prieš išsiunčiant juos į langą, naudinga tvarkant tinkintą jutiklinį ekraną. |
windowToken | Grąžina prieigos raktą, kuris vienareikšmiškai identifikuoja su vaizdu susietą langą, reikalingą klaviatūrai paslėpti. |
Supratimas, kaip paslėpti „Android“ klaviatūrą
Java pavyzdyje scenarijus pirmiausia importuoja būtinas klases, pvz., , , ir . The onCreate metodas nustato išdėstymą ir inicijuoja ir . Spustelėjus mygtuką, metodas vadinamas. Šis metodas nuskaito dabartinį sufokusuotą vaizdą naudojant getCurrentFocus, o jei vaizdas sufokusuotas, jis naudoja norėdami paslėpti minkštąją klaviatūrą skambindami . Tai veiksmingai uždaro klaviatūrą paspaudus mygtuką.
Kotlin pavyzdyje pasiekiamas panašus funkcionalumas. Scenarijus nepaiso būdas nustatyti turinio rodinį ir inicijuoti ir . Mygtuko paspaudimo klausytojas skambina hideKeyboard metodas. Be to, Metodas yra nepaisomas, kad paslėptumėte klaviatūrą, kai liečiate lauką. Šis metodas patikrina, ar vaizdas sufokusuotas, ir paslepia naudojamą klaviatūrą . Šie scenarijai pagerina vartotojo patirtį efektyviai valdydami minkštosios klaviatūros matomumą.
„Android“ minkštosios klaviatūros uždarymas programiškai
„Java“, skirta „Android“ kūrimui
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);
}
}
}
Paslėpkite klaviatūrą palietus išorę
Kotlin, skirtas „Android“ kūrimui
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)
}
}
Pažangūs „Android“ klaviatūros valdymo būdai
Kitas svarbus „Android“ minkštosios klaviatūros valdymo aspektas yra jos matomumo tvarkymas reaguojant į įvairias vartotojo sąveikas ir konfigūracijas. Pavyzdžiui, galbūt norėsite, kad klaviatūra būtų rodoma automatiškai, kai sufokusuoja arba užtikrina, kad jis pasislėptų naršant tarp skirtingų vartotojo sąsajos komponentų. Tai galima pasiekti naudojant kartu su gyvavimo ciklo atgaliniais skambučiais, pvz ir onPause.
Be to, galite valdyti klaviatūros veikimą reguliuodami atributą veiklos aprašo faile. Šis atributas leidžia nurodyti, ar klaviatūra turi koreguoti veiklos išdėstymą, ar likti paslėpta, kol nebus aiškiai nurodyta. Šių konfigūracijų naudojimas gali žymiai pagerinti vartotojo patirtį, nes suteikia intuityvesnę ir jautresnę sąsają.
- Kaip paslėpti klaviatūrą, kai netenka dėmesio?
- Galite nepaisyti klausytojas ir paskambink .
- Ar galiu automatiškai parodyti klaviatūrą, kai įgauna dėmesį?
- Taip, naudoti viduje klausytojas.
- Kaip galiu paslėpti klaviatūrą fragmente?
- Skambinti fragmento požiūrio kontekste.
- Kas yra naudojama?
- Nurodoma, kaip klaviatūra sąveikauja su veiklos išdėstymu, pvz., keičia dydį arba lieka paslėpti.
- Kaip paslėpti klaviatūrą palietus lauką ?
- Nepaisyti savo veikloje, kad patikrintumėte, ar nėra liečiamų įvykių už .
- Ar galiu priversti klaviatūrą likti paslėpta?
- Taip, nustatant į manifeste.
- Kaip nustatyti, ar klaviatūra šiuo metu matoma?
- Naudokite kad palygintumėte matomą ekrano sritį su šakninio rodinio aukščiu.
- Ar galima programiškai paslėpti klaviatūrą spustelėjus mygtuką?
- Taip, paskambink mygtuke .
Apibendrinant galima pasakyti, kad „Android“ programinės įrangos klaviatūros valdymas yra labai svarbus norint pagerinti naudotojo patirtį jūsų programoje. Naudojant , galite programiškai paslėpti arba rodyti klaviatūrą, atsižvelgdami į vartotojo sąveiką, pvz., mygtukų paspaudimus ar palietimo įvykius. Be to, konfigūruojant atributas aprašo faile leidžia tiksliau valdyti klaviatūros elgseną. Taikant šiuos metodus užtikrinama, kad klaviatūros buvimas netrukdys naudotis programėle, todėl naudotojams suteikiama sklandi ir intuityvi sąsaja.