So legen Sie den inputType für ein TextField in Jetpack Compose fest

Lesezeit: 2 Minuten

Cristans Benutzeravatar
Christan

Ich möchte einschränken, was der Benutzer in Jetpack Compose in ein TextField eingeben kann. Wie mache ich das?

Das Äquivalent in xml ist inputType:

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="number"
    android:hint="Only numbers please!" />

Cristans Benutzeravatar
Christan

Verwenden Tastaturoptionen:

TextField(
    keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number)

  • wenn {,.-} nicht notwendig sind (keyboardType = KeyboardType.NumberPassword) kann verwendet werden

    – David Aleksanyan

    13. März 2022 um 15:50 Uhr

  • Wenn . ist notwendiger Gebrauch KeyboardType.Decimal als Number garantiert es nicht

    – Tom

    9. Januar um 22:03 Uhr

Livins Benutzeravatar
Leben

Ty gefällt das Tastaturoptionen

var textShopName by remember { mutableStateOf("") } 

OutlinedTextField(
            keyboardOptions = KeyboardOptions(
                capitalization = KeyboardCapitalization.None,
                autoCorrect = true,
                keyboardType = KeyboardType.Number,
                imeAction = ImeAction.Next
            ),
            value = textShopName,
            onValueChange = { textShopName = it },
            label = { Text("Shop Name") },
            modifier = Modifier
                .padding(start = 16.dp, end = 16.dp, top = 20.dp)
                .fillMaxWidth(),

            )

Sie können etwas verwenden wie:

TextField(
        ....,
        keyboardOptions = 
             KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number)
        )

  • Was ist der Vorteil des Kopierens der Standardeinstellung?

    – Sergej

    13. November 2021 um 20:55 Uhr

  • @Sergey Der Vorteil besteht darin, nur einen einzelnen Wert zu überschreiben.

    – Gabriele Mariotti

    14. November 2021 um 8:06 Uhr

Für Passwort Tastaturtyp zum Ausblenden des Passworts müssen Sie einstellen visualTransformation zu

TextField(
 keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password),
 visualTransformation =  PasswordVisualTransformation(),
                

Nur um die obigen Antworten zu ergänzen, wenn Sie zeigen möchten numerische Tastatur für Dezimalzahlen Denk daran, dass:

Die meisten Tastaturen zeigen ein Dezimaltrennzeichen an, wenn der Tastaturtyp auf Zahl eingestellt ist. Jedochist es möglich, dass eine Tastatur erwartet TYPE_NUMBER_FLAG_DECIMAL Flag in inputType, um tatsächlich einen Schlüssel für das Dezimaltrennzeichen anzuzeigen.

Wenn Sie also eine numerische Tastatur für Dezimalzahlen anzeigen möchten, um Eckfälle in bestimmten Tastaturen zu vermeiden, sollten Sie diese verwenden keyboardType = KeyboardType.Decimal:

TextField(
        ...,
        keyboardOptions = 
             KeyboardOptions(keyboardType = KeyboardType.Decimal)
        ...,    
        )

  • Innerhalb des Codes gefunden androidx.compose.ui.text.input.KeyboardType “Ein Tastaturtyp, der verwendet wird, um einen IME anzufordern, der Dezimalzahlen eingeben kann. IME sollte explizit ein Dezimaltrennzeichen als Eingabe bereitstellen, was nicht durch KeyboardType.Number gewährleistet ist.”

    – CryptoCode

    28. Januar um 16:56 Uhr

  • Innerhalb des Codes gefunden androidx.compose.ui.text.input.KeyboardType “Ein Tastaturtyp, der verwendet wird, um einen IME anzufordern, der Dezimalzahlen eingeben kann. IME sollte explizit ein Dezimaltrennzeichen als Eingabe bereitstellen, was nicht durch KeyboardType.Number gewährleistet ist.”

    – CryptoCode

    28. Januar um 16:56 Uhr

1443140cookie-checkSo legen Sie den inputType für ein TextField in Jetpack Compose fest

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy