Vadovas, kaip programiškai paslėpti „Android“ minkštąją klaviatūrą

Java, Kotlin

„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ą.

  1. Kaip paslėpti klaviatūrą, kai netenka dėmesio?
  2. Galite nepaisyti klausytojas ir paskambink .
  3. Ar galiu automatiškai parodyti klaviatūrą, kai įgauna dėmesį?
  4. Taip, naudoti viduje klausytojas.
  5. Kaip galiu paslėpti klaviatūrą fragmente?
  6. Skambinti fragmento požiūrio kontekste.
  7. Kas yra naudojama?
  8. Nurodoma, kaip klaviatūra sąveikauja su veiklos išdėstymu, pvz., keičia dydį arba lieka paslėpti.
  9. Kaip paslėpti klaviatūrą palietus lauką ?
  10. Nepaisyti savo veikloje, kad patikrintumėte, ar nėra liečiamų įvykių už .
  11. Ar galiu priversti klaviatūrą likti paslėpta?
  12. Taip, nustatant į manifeste.
  13. Kaip nustatyti, ar klaviatūra šiuo metu matoma?
  14. Naudokite kad palygintumėte matomą ekrano sritį su šakninio rodinio aukščiu.
  15. Ar galima programiškai paslėpti klaviatūrą spustelėjus mygtuką?
  16. 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.