Peida programmiliselt Androidi pehme klaviatuur nupuklõpsamisel ja puudutamisel väljaspool

Java

Androidi pehme klaviatuuri haldamine

Androidi rakendustega töötamine nõuab sageli kasutajapoolset sisestust virtuaalse klaviatuuri kaudu. Stsenaariumide korral, kus teie paigutuses on EditText ja nupp, on klaviatuuri tõhus haldamine hädavajalik. Täpsemalt, pärast teksti sisestamist ja nupul klõpsamist võiksite kasutajakogemuse parandamiseks klaviatuuri peita.

See artikkel pakub lihtsat ja praktilist näidet selle kohta, kuidas Androidi pehme klaviatuur programmiliselt sulgeda, kui kasutaja suhtleb klaviatuurist väljaspool asuvate aladega. Järgides kirjeldatud samme, saate parandada oma Androidi rakenduse kasutatavust ja liidest.

Käsk Kirjeldus
getSystemService Toob nime järgi süsteemitaseme teenuse, näiteks sisestusmeetodite haldamiseks mõeldud InputMethodManager.
hideSoftInputFromWindow Soovib peita pehme klaviatuuri aken, mis praegu sisendit aktsepteerib.
getWindowToken Tagastab vaatega seotud aknamärgi, mis on vajalik klaviatuuri peitmiseks.
onTouchEvent Käsitseb puuteekraani liikumissündmusi, mida kasutatakse siin klaviatuuri peitmiseks väljastpoolt puudutamisel.
findViewById Otsib ja tagastab antud ID-ga vaate, mida kasutatakse kasutajaliidese elementidele (nt EditText ja Button) viitamiseks.
setOnClickListener Määrab tagasihelistamise, mis kutsutakse välja vaate klõpsamisel ja mida kasutatakse klaviatuuri peitmise käivitamiseks.

Rakenduse mõistmine

Kaasasolevad skriptid näitavad, kuidas programmiliselt peita Androidi pehme klaviatuur kasutajaliidesega suhtlemisel, eriti pärast teksti sisestamist väljal ja klõpsates a . Java ja Kotlini näited kasutavad mitmeid peamisi Androidi komponente ja meetodeid. Mõlemad skriptid alustavad vajalike klasside importimisega, näiteks , Context, ja erinevad kasutajaliidese komponendid. Aastal meetod, kasutatakse linkimiseks EditText ja paigutusest koodini. The meetod on seejärel määratud nupule, et käivitada funktsiooni klõpsamisel.

Mõlemas teostuses on funktsiooni kasutamine kätte saamiseks teenus. Meetod hideSoftInputFromWindow nimetatakse siis koos selle pehme klaviatuuri peitmiseks. Lisaks on meetod tühistatakse tagamaks, et klaviatuur on peidetud, kui kasutaja puudutab väljaspool sisestusvälja. See lähenemine parandab kasutajakogemust, vältides klaviatuuril tarbetut vaadet takistamast. Neid meetodeid kasutades ja puutesündmusi asjakohaselt käsitledes juhivad skriptid tõhusalt pehme klaviatuuri käitumist Androidi rakenduses.

Androidi pehme klaviatuuri peitmine nupuklõpsamisel ja puudutamisel väljaspool sisestusvälja

Java kasutamine Androidi arenduses

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);
    }
}

Pehme klaviatuuri lahtiütlemise käsitlemine Androidis Kotlini abil

Kotlini rakendamine Androidi rakenduste arendamiseks

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)
    }
}

Klaviatuurihalduse täiustatud tehnikate uurimine

Lisaks Androidi pehme klaviatuuri peitmise põhimeetoditele saavad arendajad kasutajakogemuse parandamiseks rakendada täiustatud tehnikaid. Üks selline meetod hõlmab kasutamist mitmel kasutajaliidese komponendil puutesündmuste tuvastamiseks ja klaviatuuri vastavalt peitmiseks. See lähenemisviis tagab, et klaviatuur on peidetud alati, kui kasutaja suhtleb mis tahes ekraani osaga väljaspool . Lisaks saab klaviatuuri nähtavuse haldamist ühendada teravustamisloogikaga, kus fookus nihutatakse teisele komponendile, paludes klaviatuuril automaatselt peituda.

Teine tehnika on kasutada peal . See kuulaja suudab tuvastada, millal kaotab fookuse ja peidab seejärel klaviatuuri. See meetod on eriti kasulik vormides või andmesisestusrakendustes, kus on kaasatud mitu sisestusvälja. Veelgi enam, sujuvama kasutuskogemuse tagamiseks saavad arendajad seda kasutada SoftKeyboardStateWatcher, kohandatud rakendus, mis jälgib klaviatuuri nähtavuse oleku muutusi ja reageerib sellele vastavalt. Selliseid täiustatud tehnikaid integreerides saavad arendajad luua intuitiivsemaid ja kasutajasõbralikumaid Androidi rakendusi.

  1. Kuidas tuvastada, millal klaviatuur on kuvatud või peidetud?
  2. Võite kasutada a klaviatuuri nähtavuse muutuste jälgimiseks.
  3. Kas kasutaja kerimisel on võimalik klaviatuuri automaatselt peita?
  4. Jah, saate rakendada a kerimisvaates, et kerimise ajal klaviatuur peita.
  5. Kas ma saan programmiliselt kuvada klaviatuuri, kui an on keskendunud?
  6. Jah, kasuta klaviatuuri kuvamiseks, kui saavutab fookuse.
  7. Kuidas peita klaviatuur, kui kasutaja vajutab tagasi nuppu?
  8. Alistada meetodit ja peita klaviatuur kasutades .
  9. Kas ma saan kohandada klaviatuuripaigutust?
  10. Jah, Android võimaldab kohandatud klaviatuuripaigutusi .
  11. Kuidas on parim viis klaviatuuri fragmenti peita?
  12. Kasuta et saada fragmendis.
  13. Kuidas saab fragmentide vahel vahetades klaviatuuri peita?
  14. Rakenda a kuulajaga, et lüliti ajal klaviatuur peita.
  15. Kas klaviatuuri peitmist on võimalik animeerida?
  16. Jah, saate animeerida vaadet, mis sisaldab sujuva peitmise efekti loomiseks.

Androidi pehme klaviatuuri tõhus haldamine on intuitiivsete rakenduste loomisel ülioluline. Kasutades InputMethodManageri toomiseks getSystemService'i ja klaviatuuri peitmiseks funktsiooni hideSoftInputFromWindow, saavad arendajad juhtida, millal klaviatuur ilmub ja kaob. Puute- ja klõpsakuulajate rakendamine täiustab seda juhtimist veelgi, tagades, et klaviatuur peidab end teiste kasutajaliidese elementidega suhtlemisel korralikult. Need tehnikad parandavad kasutajakogemust, takistades klaviatuuril olulist sisu või kasutajaliidese elemente takistamast.