Programiškai paslėpkite „Android“ minkštąją klaviatūrą spustelėdami ir paliesdami lauke

Java

„Android“ minkštosios klaviatūros valdymas

Norint dirbti su „Android“ programomis, dažnai reikia naudotojo įvesties naudojant virtualią klaviatūrą. Tais atvejais, kai išdėstyme yra EditText ir Mygtukas, labai svarbu efektyviai valdyti klaviatūrą. Tiksliau, įvedę tekstą ir spustelėję mygtuką, galbūt norėsite paslėpti klaviatūrą, kad pagerintumėte vartotojo patirtį.

Šiame straipsnyje bus pateiktas paprastas ir praktiškas pavyzdys, kaip programiškai uždaryti „Android“ programinę klaviatūrą, kai vartotojas sąveikauja su sritimis už klaviatūros ribų. Vykdydami nurodytus veiksmus galite pagerinti „Android“ programos naudojimo patogumą ir sąsają.

komandą apibūdinimas
getSystemService Nuskaito sistemos lygio paslaugą pagal pavadinimą, pvz., InputMethodManager, skirtą įvesties metodams tvarkyti.
hideSoftInputFromWindow Prašo paslėpti minkštosios klaviatūros langą, kuris šiuo metu priima įvestį.
getWindowToken Grąžina su vaizdu susietą lango prieigos raktą, reikalingą klaviatūrai paslėpti.
onTouchEvent Tvarko jutiklinio ekrano judesio įvykius, čia naudojamas klaviatūrai paslėpti palietus lauke.
findViewById Suranda ir grąžina rodinį su nurodytu ID, naudojamą UI elementams, pvz., EditText ir Button, nuorodai.
setOnClickListener Nustatomas atgalinis skambutis, kuris bus iškviestas spustelėjus rodinį ir naudojamas klaviatūros slėpimui suaktyvinti.

Įgyvendinimo supratimas

Pateikti scenarijai parodo, kaip programiškai paslėpti „Android“ programinę klaviatūrą sąveikaujant su vartotojo sąsaja, ypač įvedus tekstą lauką ir spustelėdami a . „Java“ ir „Kotlin“ pavyzdžiuose naudojami keli pagrindiniai „Android“ komponentai ir metodai. Abu scenarijai pradedami importuojant būtinas klases, tokias kaip , Context, ir įvairūs vartotojo sąsajos komponentai. Viduje metodas, naudojamas susieti EditText ir nuo maketo iki kodo. The Tada ant mygtuko nustatomas metodas, kad suaktyvintų funkcija spustelėjus.

Abiejuose įgyvendinimuose funkcija naudoja atgauti paslauga. Metodas hideSoftInputFromWindow tada vadinamas su iš norėdami paslėpti minkštąją klaviatūrą. Be to, Metodas nepaisomas siekiant užtikrinti, kad klaviatūra būtų paslėpta, kai vartotojas paliečia už įvesties lauko ribų. Šis metodas pagerina vartotojo patirtį, nes neleidžia klaviatūrai be reikalo trukdyti matyti. Naudodami šiuos metodus ir tinkamai tvarkydami jutiklinius įvykius, scenarijai efektyviai valdo minkštosios klaviatūros elgseną „Android“ programoje.

„Android“ minkštosios klaviatūros paslėpimas spustelėjus ir paliesjus už įvesties lauko ribų

„Java“ naudojimas kuriant „Android“.

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
 
public class MainActivity extends Activity {
    private EditText editText;
    private Button button;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        editText = findViewById(R.id.editText);
        button = findViewById(R.id.button);
 
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                hideKeyboard();
            }
        });
    }
 
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        hideKeyboard();
        return super.onTouchEvent(event);
    }
 
    private void hideKeyboard() {
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
    }
}

Minkštos klaviatūros atleidimo tvarkymas „Android“ naudojant „Kotlin“.

„Android“ programų kūrimui naudoja Kotliną

import android.app.Activity
import android.content.Context
import android.os.Bundle
import android.view.MotionEvent
import android.view.View
import android.view.inputmethod.InputMethodManager
import android.widget.Button
import android.widget.EditText
 
class MainActivity : Activity() {
    private lateinit var editText: EditText
    private lateinit var button: Button
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        editText = findViewById(R.id.editText)
        button = findViewById(R.id.button)
 
        button.setOnClickListener { hideKeyboard() }
    }
 
    override fun onTouchEvent(event: MotionEvent): Boolean {
        hideKeyboard()
        return super.onTouchEvent(event)
    }
 
    private fun hideKeyboard() {
        val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        imm.hideSoftInputFromWindow(editText.windowToken, 0)
    }
}

Pažangių klaviatūros valdymo metodų tyrinėjimas

Be pagrindinių „Android“ minkštosios klaviatūros slėpimo metodų, kūrėjai gali įdiegti pažangesnius metodus, kad pagerintų vartotojo patirtį. Vienas iš tokių metodų apima naudojimą keliuose vartotojo sąsajos komponentuose, kad būtų galima aptikti prisilietimo įvykius ir atitinkamai paslėpti klaviatūrą. Šis metodas užtikrina, kad klaviatūra būtų paslėpta, kai vartotojas sąveikauja su bet kuria ekrano dalimi už jos ribų . Be to, klaviatūros matomumo valdymas gali būti derinamas su fokusavimo logika, kai dėmesys nukreipiamas nuo į kitą komponentą, raginant klaviatūrą automatiškai paslėpti.

Kitas būdas yra naudoti ant . Šis klausytojas gali aptikti, kada netenka dėmesio ir vėliau paslėpti klaviatūrą. Šis metodas ypač naudingas formose arba duomenų įvedimo programose, kuriose naudojami keli įvesties laukai. Be to, norėdami užtikrinti sklandesnę vartotojo patirtį, kūrėjai gali naudoti SoftKeyboardStateWatcher, tinkintas diegimas, kuris seka klaviatūros matomumo būsenos pokyčius ir atitinkamai reaguoja. Integruodami tokias pažangias technologijas, kūrėjai gali sukurti intuityvesnes ir patogesnes Android programas.

  1. Kaip nustatyti, kada klaviatūra rodoma arba paslėpta?
  2. Galite naudoti a stebėti klaviatūros matomumo pokyčius.
  3. Ar galima automatiškai paslėpti klaviatūrą, kai vartotojas slenka?
  4. Taip, galite įgyvendinti a slinkties rodinyje, kad paslėptumėte klaviatūrą slinkimo metu.
  5. Ar galiu programiškai rodyti klaviatūrą, kai an yra susikaupęs?
  6. Taip, naudoti kad būtų rodoma klaviatūra, kai įgauna dėmesį.
  7. Kaip paslėpti klaviatūrą, kai vartotojas paspaudžia grįžimo mygtuką?
  8. Nepaisyti metodą ir paslėpkite klaviatūrą naudodami .
  9. Ar galiu tinkinti klaviatūros išdėstymą?
  10. Taip, „Android“ leidžia pasirinktinius klaviatūros išdėstymus .
  11. Koks yra geriausias būdas paslėpti klaviatūrą fragmente?
  12. Naudokite gauti fragmente.
  13. Kaip galiu paslėpti klaviatūrą perjungiant fragmentus?
  14. Įgyvendinti a su klausytoju, kad perjungimo metu paslėptumėte klaviatūrą.
  15. Ar įmanoma animuoti klaviatūros slėpimą?
  16. Taip, galite animuoti rodinį, kuriame yra sukurti sklandų slėpimosi efektą.

Kuriant intuityvias programas, labai svarbu efektyviai valdyti „Android“ minkštąją klaviatūrą. Naudodami getSystemService norėdami gauti InputMethodManager ir hideSoftInputFromWindow klaviatūrai paslėpti, kūrėjai gali valdyti, kada klaviatūra pasirodo ir dingsta. Palietus ir spustelėjus klausytojus, šis valdymas dar labiau patobulintas, užtikrinant, kad klaviatūra tinkamai pasislėptų sąveikaujant su kitais vartotojo sąsajos elementais. Šie metodai pagerina vartotojo patirtį, neleisdami klaviatūrai trukdyti svarbiam turiniui ar vartotojo sąsajos elementams.