TextField的构造
@Composable
fun TextField(
//输入的文本内容
value: String,
//更新文本触发回调,类似EditText中addTextChangedListener
onValueChange: (String) -> Unit,
//样式
modifier: Modifier = Modifier,
//控制TextField的启用状态,false:文本字段不可编辑不可聚焦
enabled: Boolean = true,
//控制TextField的可编辑状态
readOnly: Boolean = false,
//文字样式,类型为TextStyle
textStyle: TextStyle = LocalTextStyle.current,
//文本字段容器中显示的可选标签
label: @Composable (() -> Unit)? = null,
//占位符,TextView中配置的hint属性一样,需要注意的是如何和label一起使用,会被覆盖效果,只有获取焦点时候才会被显示出来
placeholder: @Composable (() -> Unit)? = null,
//前导图标,文本前的图标
leadingIcon: @Composable (() -> Unit)? = null,
//尾随图标,文本后的图标
trailingIcon: @Composable (() -> Unit)? = null,
//当前值是否错误
isError: Boolean = false,
//视觉转换,类似EditText中的inputType,实现VisualTransformation该接口来实现一些其他转换
visualTransformation: VisualTransformation = VisualTransformation.None,
//输入框类型。可以定义为return/search等
keyboardOptions: KeyboardOptions = KeyboardOptions.Default,
//输入框Enter键盘类型,键盘返回键的的回调
keyboardActions: KeyboardActions = KeyboardActions(),
//是否单行
singleLine: Boolean = false,
//最大行
maxLines: Int = Int.MAX_VALUE,
//组件交互变化
//interactionSource 处理状态的属性,比如按下的时候什么效果,正常时候什么效果,获取焦点时候什么效果等。类似之前再布局文件里写Selector。
//interactionSource.collectIsPressedAsState() 判断是否按下状态
//interactionSource.collectIsFocusedAsState() 判断是否获取焦点的状态
//interactionSource.collectIsDraggedAsState() 判断是否拖动
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
//文本框形状
shape: Shape =
MaterialTheme.shapes.small.copy(bottomEnd = ZeroCornerSize, bottomStart = ZeroCornerSize),
//文字,光标等颜色
colors: TextFieldColors = TextFieldDefaults.text