查看全部组件编辑https://blog.csdn.net/b275518834/article/details/144751353
TextField
- 功能说明:提供用户输入文本的功能,可设置默认文本、提示文本以及文本样式,方便获取用户输入的内容,常用于数据采集场景。
- 示例场景:在注册页面,用户输入用户名、密码、邮箱等信息;在搜索功能中,用户输入关键词进行搜索操作。
package org.lxz.project.compose.demo
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material.Text
import androidx.compose.material.TextField
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.input.PasswordVisualTransformation
import androidx.compose.ui.unit.dp
object TextFieldDemo {
@Composable
fun TextFieldMultiPlatformExample() {
// 用于普通文本输入的状态
var text by remember { mutableStateOf("") }
// 用于数字输入的状态
var numberText by remember { mutableStateOf("") }
// 用于密码输入的状态
var passwordText by remember { mutableStateOf("") }
// 用于限制长度输入的状态
var limitedText by remember { mutableStateOf("") }
Column(
modifier = Modifier
.fillMaxWidth()
.padding(16.dp)
) {
// 基础的TextField示例,展示基本的文本输入与显示
TextField(
value = text,
onValueChange = { value-> text = value },
label = { Text("输入内容") },
placeholder = { Text("请在此输入") }
)
Text(
text = "你输入的内容是: $text",
modifier = Modifier.padding(top = 8.dp)
)
// 展示设置TextField的键盘类型为数字键盘
TextField(
value = numberText,
onValueChange = { value-> numberText = value },
label = { Text("输入数字") },
placeholder = { Text("请输入数字") },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number)
)
// 展示设置TextField为密码输入框(输入内容会被隐藏)
TextField(
value = passwordText,
onValueChange = { value-> passwordText = value },
label = { Text("输入密码") },
placeholder = { Text("请输入密码") },
visualTransformation = PasswordVisualTransformation()
)
// 展示设置TextField的最大长度限制(这里限制为10个字符)
TextField(
value = limitedText,
onValueChange = { newLimitedText ->
if (newLimitedText.length <= 10) {
// 只有长度符合要求时才更新状态
limitedText = newLimitedText
}
},
label = { Text("限制长度输入10个字符") },
placeholder = { Text("最多输入10个字符") }
)
}
}
}
运行后效果