Keyboard Type — bu nədir, klaviatura növləri və Android-də daxiletmə konfiqurasiyası

Müəllif: IT Sectr Dərc olunub: 2026-07-07 Oxuma vaxtı: 9 dəq

Keyboard Type — Android-də virtual klaviaturanın konfiqurasiyasıdır ki, müəyyən daxiletmə sahəsi üçün göstərilən simvollar dəstini və düzülüşü müəyyən edir. Android bir çox əvvəlcədən təyin edilmiş növləri dəstəkləyir: text (standart mətn), number (rəqəm), phone (telefon), email (@ simvolu ilə), textPassword (parollar üçün), datetime və digərləri. Hər bir növ daxiletmə interfeysini konkret tapşırığa uyğun optimallaşdırır — məsələn, email klaviaturası əsas ekranda @ simvolu və nöqtəni göstərir. Android Developers (2026) məlumatlarına görə, Keyboard Type-nin düzgün seçilməsi standart mətn klaviaturası ilə müqayisədə daxiletmə zamanı vuruş sayını 20–40% azaldır.

Əsas məqamlar

  • Keyboard Type — Android-də android:inputType atributu ilə müəyyən edilən klaviatura rejimi.
  • Əsas növlər — müxtəlif daxiletmə ssenariləri üçün text, number, phone, email, textPassword, datetime.
  • Daxiletmə optimallaşdırması — düzgün klaviatura növü formaların doldurulmasını 20–40% sürətləndirir.
  • Bayraqların kombinasiyası — inputType daxiletmə sinfini və modifikatorları (çoxsətirlilik, avtomatik düzəltmə) birləşdirir.
  • IME options — imeOptions atributu klaviaturada hərəkət düyməsini idarə edir (Done, Search, Next).

Android-də Keyboard Type nədir

Keyboard Type XML-də android:inputType atributunun dəyəri və ya kodda setInputType() proqram çağırışı ilə müəyyən edilir. InputType bit maskasıdır, burada daxiletmə sinfi (sinif) modifikator bayraqları ilə birləşdirilir. Əsas siniflər: mətn üçün TYPE_CLASS_TEXT, rəqəmlər üçün TYPE_CLASS_NUMBER, telefonlar üçün TYPE_CLASS_PHONE, tarix və vaxt üçün TYPE_CLASS_DATETIME.

Hər bir Keyboard Type üç aspektə təsir edir: virtual klaviaturanın düzülüşü (əsas ekranda hansı simvollar görünür), daxil edilən simvolların filtrasiyası (hansı simvollar icazəlidir) və avtomatik düzəltmə/avtomatik tamamlama davranışı. Məsələn, number klaviaturası yalnız rəqəmləri və onluq ayırıcını göstərir, istifadəçi registri dəyişsə belə hərfləri göstərmir. Android Developers Documentation (2026) məlumatlarına görə, siniflərin bayraqlarla birləşdirilməsi yüksək ixtisaslaşmış rejimlər yaratmağa imkan verir: avtomatik düzəltmə ilə çoxsətirli mətn, üzən nöqtəli rəqəm, avtomatik tamamlama imkanı olan parol.

Anlamaq vacibdir ki, Keyboard Type daxiletmə sistemi (IME) üçün tövsiyədir. Bəzi üçüncü tərəf klaviaturaları (Gboard, SwiftKey) istifadəçi öz seçimlərini konfiqurasiya edərsə, göstərilən növü qismən görməməzlikdən gələ bilər. Bununla belə, əksər standart Android klaviaturaları və Google Gboard göstərilən daxiletmə növünə ciddi şəkildə əməl edir.

kotlin
// Klaviatura növünün proqram konfiqurasiyası
editText.inputType = InputType.TYPE_CLASS_NUMBER or
    InputType.TYPE_NUMBER_FLAG_DECIMAL or
    InputType.TYPE_NUMBER_FLAG_SIGNED

Text — standart mətn klaviaturası

TYPE_CLASS_TEXT — mətn daxiletməsi üçün əsas sinif. O, hərflər, rəqəmlər və simvollarla standart QWERTY klaviaturasını aktivləşdirir. Text sinfi davranışı dəqiqləşdirən ən çox modifikatora malikdir: TYPE_TEXT_FLAG_CAP_SENTENCES (cümlənin əvvəlində avtomatik böyük hərf), TYPE_TEXT_FLAG_AUTO_CORRECT (avtomatik düzəltmə), TYPE_TEXT_FLAG_MULTI_LINE (çoxsətirli rejim), TYPE_TEXT_FLAG_NO_SUGGESTIONS (təkliflərin söndürülməsi).

Mətn klaviaturasının modifikatorları birləşdirilərək dəqiq konfiqurasiya yaradıla bilər: məsələn, text|textCapSentences|textAutoCorrect şərh daxiletmə sahəsi üçün uyğundur, burada avtomatik böyük hərf və səhvlərin düzəldilməsi lazımdır. text|textNoSuggestions isə kod və ya xüsusi terminlərin daxil edilməsi üçün istifadə olunur, burada avtomatik düzəltmə zərər verə bilər.

UX Stack Exchange (2025) məlumatlarına görə, avtomatik düzəltmə aktiv olan mətn klaviaturası orta istifadəçi üçün daxiletməni 15–25% sürətləndirir, lakin texniki terminlər (kod, URL, email) üçün avtomatik düzəltməni söndürmək tövsiyə olunur, çünki o, tez-tez düzgün terminləri səhv olanlarla əvəz edir.

xml
<!-- Text with autocorrect and capital sentences -->
android:inputType="textCapSentences|textAutoCorrect"

<!-- Text without suggestions and autocorrect -->
android:inputType="textNoSuggestions"

Number — rəqəm klaviaturası

TYPE_CLASS_NUMBER yalnız rəqəmləri, onluq ayırıcını və mənfi işarəsini göstərən rəqəm klaviaturasını aktivləşdirir. Bu növ miqdar, qiymət, yaş, kodlar və digər rəqəm məlumatlarının daxil edilməsi sahələri üçün istifadə olunur. Rəqəm klaviaturası ekranda mətn klaviaturasından daha az yer tutur və təsadüfi hərf daxil edilməsini istisna edir.

Number üç modifikatora malikdir: TYPE_NUMBER_FLAG_DECIMAL onluq nöqtəni/vergülü əlavə edir, TYPE_NUMBER_FLAG_SIGNED mənfi ədədlər üçün mənfi işarəsini əlavə edir, TYPE_NUMBER_VARIATION_PASSWORD — PIN-kodlar üçün, burada rəqəmlər gizli simvollar kimi göstərilir. number|numberDecimal|numberSigned kombinasiyası istənilən işarəli üzən nöqtəli ədədlərin daxil edilməsi üçün tam hüquqlu sahə yaradır.

  • number — tam müsbət ədədlər (yaş, məhsul sayı).
  • numberDecimal — onluq hissəsi olan ədədlər (qiymətlər, çəki, boy).
  • numberSigned — işarəli ədədlər (temperatur, koordinatlar).
  • numberPassword — PIN-kodlar üçün rəqəmlərin gizli daxil edilməsi.
kotlin
// Onluq nöqtə ilə rəqəm daxiletməsi
editText.inputType = InputType.TYPE_CLASS_NUMBER or
    InputType.TYPE_NUMBER_FLAG_DECIMAL

// Daxil edilmiş nömrəni yoxlayın
val amount = editText.text.toString().toDoubleOrNull() ?: 0.0

Phone və Email — ixtisaslaşmış klaviaturalar

TYPE_CLASS_PHONE telefon nömrələri üçün xarakterik olan rəqəmləri və simvolları göstərən telefon klaviaturasını aktivləşdirir: +, #, *, (, ). Number klaviaturasından fərqli olaraq, phone əlavə rejimdə hərf düzülüşünü də göstərir, çünki telefon nömrələrində hərflər ola bilər (məsələn, 1-800-FLOWERS). Phone sinfinin əlavə bayraqları yoxdur, lakin daxili nömrələrin daxil edilməsi üçün TYPE_TEXT_VARIATION_PHONE_ETC dəstəkləyir.

TYPE_TEXT_VARIATION_EMAIL_ADDRESS email klaviaturasını aktivləşdirir, burada @ simvolu və nöqtə əsas ekranda yerləşir, həmçinin tez-tez istifadə olunan domen genişləntmələri (.com, .net, .org) mövcuddur. Gboard @ işarəsindən sonra daxiletmə zamanı əlavə olaraq məşhur domenlərlə düymələri göstərir. Email klaviaturası avtomatik olaraq avtomatik düzəltməni söndürür, çünki email ünvanları qeyri-standart simvol kombinasiyaları ehtiva edə bilər.

Google Material Design Guidelines (2025) məlumatlarına görə, telefon sahələri üçün əlavə olaraq android:digits atributunu göstərmək tövsiyə olunur ki, bu da icazə verilən simvollar dəstini məhdudlaşdırır. Email sahələri üçün həmçinin parol meneceri və Google Autofill-dən avtomatik doldurulmanı dəstəkləmək üçün autofillHints="email" göstərmək vacibdir.

xml
<!-- Email keyboard with autofill -->
android:inputType="textEmailAddress"
android:importantForAutofill="yes"
android:autofillHints="emailAddress"

<!-- Phone keyboard with digit restriction -->
android:inputType="phone"
android:digits="0123456789+"

Password — parollar üçün klaviatura

TYPE_TEXT_VARIATION_PASSWORDTYPE_NUMBER_VARIATION_PASSWORD — məxfi məlumatların daxil edilməsi rejimləridir. textPassword təyin edildikdə, daxil edilən simvollar nöqtələr və ya ulduzlar şəklində göstərilir (Android versiyasından və klaviaturadan asılı olaraq). Bu rejimdə klaviatura avtomatik düzəltməni və daxil edilən sözlərin istifadəçi lüğətinə yadda saxlanmasını söndürür, proqnozlaşdırıcı daxiletmə funksiyaları vasitəsilə parol sızmasının qarşısını alır.

Password klaviaturası həmçinin sahənin məzmununun ekran görüntüsünün çəkilməsi imkanını söndürür (FLAG_SECURE bayrağı), baxmayaraq ki, bu davranış konkret klaviaturanın tətbiqindən asılıdır. Android 8.0-dan (API 26) başlayaraq, parol klaviaturaları importantForAutofill="yes" atributu təyin edildikdə, parol menecerləri vasitəsilə avtomatik doldurulmanı dəstəkləyir.

Android Security Recommendations (2025) məlumatlarına görə, parol sahələri üçün həmçinin tövsiyə olunur: çox uzun parolların qarşısını almaq üçün maxLength təyin etmək (bunlar verilənlər bazasına hücum ola bilər), istifadəçinin formanı göndərməzdən əvvəl daxil edilmiş parolu yoxlaya bilməsi üçün inputType="textPassword" TextInputLayout və endIconMode="password_toggle" ilə birlikdə istifadə etmək.

xml
<!-- Password field with show/hide icon -->
@+id/tilPasswordField
app:endIconMode="password_toggle">

    @+id/etPasswordField
    android:inputType="textPassword"
    android:maxLength="64"
    android:importantForAutofill="yes" />

</com.google.android.material.textfield.TextInputLayout>

Kodda Keyboard Type konfiqurasiyası

Keyboard Type-nin proqram konfiqurasiyası kontekstdən və ya istifadəçi daxiletməsindən asılı olaraq klaviatura rejimini dinamik dəyişməyə imkan verir. Məsələn, sahə növünü dəyişdirərkən (mətn/rəqəm/tarix) və ya lokali dəyişdirərkən. setInputType() metodu InputType bit maskasını qəbul edir və sahə fokusda olduqda klaviaturanı dərhal yeniləyir.

Növün dinamik dəyişdirilməsi

kotlin
// Mətn və rəqəm daxiletməsi arasında keçid
fun switchInputType(field: EditText, isNumeric: Boolean) {
    field.inputType = if (isNumeric) {
        InputType.TYPE_CLASS_NUMBER or
            InputType.TYPE_NUMBER_FLAG_DECIMAL
    } else {
        InputType.TYPE_CLASS_TEXT or
            InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
    }
    field.setSelection(field.text.length)
}

Cari növün yoxlanılması

kotlin
// Sahənin rəqəm olub olmadığını yoxlayın
fun isNumericInput(field: EditText): Boolean {
    val type = field.inputType
    return (type and InputType.TYPE_MASK_CLASS) ==
        InputType.TYPE_CLASS_NUMBER
}

// Avtomatik düzəltmənin aktiv olub olmadığını yoxlayın
fun isAutoCorrectEnabled(field: EditText): Boolean {
    return (field.inputType and
        InputType.TYPE_TEXT_FLAG_AUTO_CORRECT) != 0
}

Tez-tez verilən suallar

Keyboard Type göstərilməsə nə olar?

Əgər inputType göstərilməyibsə, EditText standart olaraq TYPE_TEXT_FLAG_MULTI_LINE bayrağı ilə TYPE_CLASS_TEXT istifadə edir. Bu, standart QWERTY klaviaturası və çoxsətirli daxiletmə deməkdir. Əksər sahələr üçün klaviaturanın düzgün davranışını və simvol filtrasiyasını təmin etmək üçün inputType-ni açıq şəkildə göstərmək tövsiyə olunur.

„Enter" əvəzinə „Done" düyməsi olan klaviatura necə edilir?

EditText-də android:imeOptions="actionDone" atributundan istifadə edin. Bu, Enter düyməsini Done düyməsi ilə əvəz edəcək. Digər variantlar: actionSearch (lupa), actionNext (sağ ox), actionSend (göndərmə). Düymənin basılmasının işlənməsini kodda OnEditorActionListener vasitəsilə həyata keçirin.

Sahə üçün klaviatura vibrasiyasını söndürmək olar?

Konkret sahə üçün vibrasiyanı söndürmək mümkün deyil — bu, istifadəçi tərəfindən klaviatura parametrlərində idarə olunan sistem parametridir. Bununla belə, EditText-də android:focusable="false" atributu təyin etməklə və ya dispatchTouchEvent vasitəsilə göstərilməni ləğv etməklə klaviaturanın tamamilə görünməsinin qarşısını almaq olar.

Yalnız oxumaq üçün, lakin mətni kopyalamaq imkanı olan sahə necə edilir?

android:inputType="none" təyin edin və ya proqram olaraq editText.setKeyListener(null) çağırın. Sahə mətni göstərəcək, lakin fokusda klaviatura görünməyəcək. İstifadəçi mətni seçib kopyalaya biləcək, lakin dəyişdirə bilməyəcək. Alternativ — textIsSelectable="true" ilə TextView istifadə etmək.

setInputType()-dən sonra klaviatura niyə dəyişmir?

setInputType() çağırışından sonra klaviaturanı yenidən göstərmək lazımdır, çünki sistem İME-ni avtomatik yeniləməyə bilər. Məcburi yeniləmə üçün InputMethodManager.restartInput(view) çağırın. Sahə fokusda deyilsə, əvvəlcə requestFocus(), sonra restartInput çağırın.

Xülasə

  • Keyboard Type Android-də daxiletmə sahəsi üçün klaviaturanın düzülüşünü, filtrasiyasını və davranışını müəyyən edir.
  • text — avtomatik düzəltmə, böyük hərflər və çoxsətirlilik modifikatorları ilə standart QWERTY klaviaturası.
  • number — signed və decimal seçimi ilə tam və kəsr ədədlər üçün rəqəm klaviaturası.
  • phone — rəqəmlər, +, #, * və hərf nömrələri dəstəyi ilə telefon klaviaturası.
  • email — @, nöqtə və domen genişləntmələrinə sürətli giriş ilə klaviatura.
  • textPassword — avtomatik düzəltmə və lüğətə yadda saxlanmanın söndürülməsi ilə gizli daxiletmə.
  • imeOptions klaviaturada hərəkət düyməsini konfiqurasiya edir: Done, Search, Next, Send.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun