如何在 Jetpack Compose 中为 TextField 设置 inputType

问题描述

我想限制用户可以在 Jetpack Compose 的 TextField 中键入的内容。我该怎么做?

xml 中的等价物是 inputType:

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

解决方法

使用keyboardOptions

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

您可以使用以下内容:

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

你喜欢这样KeyboardOptions

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(),)