
/**
* 自定义的BasicTextField,只包含 @see BasicTextField 的基本功能和 placeHolder
*
* @param placeHolder 没有输入的占位符
*/
@Composable
fun CustomBasicTextField(
value: String,
onValueChange: (String) -> Unit,
placeHolder: (@Composable BoxScope.() -> Unit)? = null,
modifier: Modifier = Modifier,
enabled: Boolean = true,
readOnly: Boolean = false,
textStyle: TextStyle = TextStyle.Default,
keyboardOptions: KeyboardOptions = KeyboardOptions.Default,
keyboardActions: KeyboardActions = KeyboardActions.Default,
singleLine: Boolean = false,
maxLines: Int = if (singleLine) 1 else Int.MAX_VALUE,
minLines: Int = 1,
visualTransformation: VisualTransformation = VisualTransformation.None,
onTextLayout: (TextLayoutResult) -> Unit = {},
interactionSource: MutableInteractionSource? = null,
cursorBrush: Brush = SolidColor(Color.Black),
decorationBox: @Composable (innerTextField: @Composable () -> Unit) -> Unit =
@Composable { innerTextField -> innerTextField() }
) {
Box(modifier = modifier){
if (value.isEmpty() && placeHolder != null) placeHolder.invoke(this)
BasicTextField(
value = value,
onValueChange = onValueChange,
singleLine = singleLine,
enabled = enabled,
modifier = Modifier,
cursorBrush = cursorBrush,
textStyle=textStyle,
readOnly = readOnly,
keyboardOptions = keyboardOptions,
keyboardActions = keyboardActions,
maxLines = maxLines,
minLines = minLines,
interactionSource = interactionSource,
visualTransformation = visualTransformation,
onTextLayout = onTextLayout,
decorationBox = decorationBox
)
}
}