mirror of
https://github.com/BetterAndroid/FlexiUI.git
synced 2025-09-09 03:54:23 +08:00
feat: customization placeholderContentColor in TextField
This commit is contained in:
@@ -104,6 +104,7 @@ data class TextFieldColors(
|
|||||||
val cursorColor: Color,
|
val cursorColor: Color,
|
||||||
val selectionColors: TextSelectionColors,
|
val selectionColors: TextSelectionColors,
|
||||||
val completionColors: AutoCompleteBoxColors,
|
val completionColors: AutoCompleteBoxColors,
|
||||||
|
val placeholderContentColor: Color,
|
||||||
val decorInactiveTint: Color,
|
val decorInactiveTint: Color,
|
||||||
val decorActiveTint: Color,
|
val decorActiveTint: Color,
|
||||||
val borderInactiveColor: Color,
|
val borderInactiveColor: Color,
|
||||||
@@ -224,6 +225,7 @@ fun TextField(
|
|||||||
decorationBox = {
|
decorationBox = {
|
||||||
TextFieldDecorationBox(
|
TextFieldDecorationBox(
|
||||||
value = value.text,
|
value = value.text,
|
||||||
|
placeholderContentColor = colors.placeholderContentColor,
|
||||||
placeholder = placeholder,
|
placeholder = placeholder,
|
||||||
innerTextField = it
|
innerTextField = it
|
||||||
)
|
)
|
||||||
@@ -682,13 +684,14 @@ private fun InnerDecorationBox(
|
|||||||
@Composable
|
@Composable
|
||||||
private fun TextFieldDecorationBox(
|
private fun TextFieldDecorationBox(
|
||||||
value: String,
|
value: String,
|
||||||
|
placeholderContentColor: Color,
|
||||||
placeholder: @Composable () -> Unit,
|
placeholder: @Composable () -> Unit,
|
||||||
innerTextField: @Composable () -> Unit
|
innerTextField: @Composable () -> Unit
|
||||||
) {
|
) {
|
||||||
val animatedAlpha by animateFloatAsState(if (value.isNotEmpty()) 0f else 1f)
|
val animatedAlpha by animateFloatAsState(if (value.isNotEmpty()) 0f else 1f)
|
||||||
Box(modifier = Modifier.alpha(animatedAlpha)) {
|
Box(modifier = Modifier.alpha(animatedAlpha)) {
|
||||||
CompositionLocalProvider(
|
CompositionLocalProvider(
|
||||||
LocalTextStyle provides LocalTextStyle.current.default(LocalColors.current.textSecondary)
|
LocalTextStyle provides LocalTextStyle.current.default(placeholderContentColor)
|
||||||
) { placeholder() }
|
) { placeholder() }
|
||||||
}
|
}
|
||||||
innerTextField()
|
innerTextField()
|
||||||
@@ -776,6 +779,7 @@ private fun defaultTextFieldColors() = TextFieldColors(
|
|||||||
highlightContentColor = LocalColors.current.themePrimary,
|
highlightContentColor = LocalColors.current.themePrimary,
|
||||||
menuColors = DropdownMenu.colors
|
menuColors = DropdownMenu.colors
|
||||||
),
|
),
|
||||||
|
placeholderContentColor = LocalColors.current.textSecondary,
|
||||||
decorInactiveTint = LocalColors.current.themeSecondary,
|
decorInactiveTint = LocalColors.current.themeSecondary,
|
||||||
decorActiveTint = LocalColors.current.themePrimary,
|
decorActiveTint = LocalColors.current.themePrimary,
|
||||||
borderInactiveColor = LocalColors.current.themeSecondary,
|
borderInactiveColor = LocalColors.current.themeSecondary,
|
||||||
|
Reference in New Issue
Block a user