Kotlin Jetpack中的装饰盒组成基本ExtField
我使用jetpack compose创建一个editText,我想显示一个类似“android:hint”之前的提示, 所以我尝试使用decorationBox,但是在我创建它之后,输入不会显示,日志可以显示我的输入内容。 这是我的密码Kotlin Jetpack中的装饰盒组成基本ExtField,kotlin,android-jetpack-compose,Kotlin,Android Jetpack Compose,我使用jetpack compose创建一个editText,我想显示一个类似“android:hint”之前的提示, 所以我尝试使用decorationBox,但是在我创建它之后,输入不会显示,日志可以显示我的输入内容。 这是我的密码 val passState= remember { mutableStateOf(TextFieldValue("")) } BasicTextField( decorationBox = { Text("p
val passState= remember { mutableStateOf(TextFieldValue("")) }
BasicTextField(
decorationBox = {
Text("password",color = loginGrayColor)
},
value = passState.value,
onValueChange = { passState.value = it ; Log.d("password",it.text) },
singleLine = true,
maxLines = 1,
textStyle = TextStyle(
fontSize = 15.sp,
color = loginInputTextColor
),
modifier = Modifier
.padding(start = 10.dp, top = 10.dp)
.height(20.dp)
)
您必须添加
装饰框提供的内部文本字段
比如:
var value by remember { mutableStateOf(TextFieldValue("")) }
BasicTextField(
value = value,
onValueChange = { value = it },
decorationBox = { innerTextField ->
Row(
Modifier
.background(Color.LightGray, RoundedCornerShape(percent = 30))
.padding(16.dp)
) {
if (value.text.isEmpty()) {
Text("Label")
}
innerTextField() //<-- Add this
}
},
)
记住{mutableStateOf(TextFieldValue(“”))的var值
BasicTextField(
值=值,
onValueChange={value=it},
装饰框={innerTextField->
划船(
修饰语
.背景(颜色为浅灰色,圆角形状(百分比=30))
.填充(16.dp)
) {
if(value.text.isEmpty()){
文本(“标签”)
}
innerTextField()//有理由使用BasicTextField
而不是TextField
?如果希望光标从占位符标签的开头开始,请将装饰框内容放在框中而不是行中