Fixed
Status Update
Comments
se...@google.com <se...@google.com>
ma...@google.com <ma...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 9082f62682f853ad5251a1c79dde9eccba7abdd9
Author: Max Alfonso-Ying <maxying@google.com>
Date: Thu Apr 18 00:34:40 2024
[M2 text field] Apply background to decoration box
...instead of to the BasicTextField, so changing the
backgroundColor will properly change the decoration
box's background color.
Fixes: b/307694651
Test: added unit tests
Relnote: "Fix backgroundColor not applying to
TextFieldDecorationBox and OutlinedTextFieldDecorationBox.
Decoration boxes now accept a `shape` parameter."
Change-Id: I371c26718597cb36ac537e9412ce476532afb40d
M compose/material/material/api/current.txt
M compose/material/material/api/restricted_current.txt
M compose/material/material/integration-tests/material-demos/src/main/java/androidx/compose/material/demos/TextFieldDecorationBoxDemos.kt
M compose/material/material/src/androidInstrumentedTest/kotlin/androidx/compose/material/textfield/TextFieldDecorationBoxTest.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextField.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextFieldDefaults.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextFieldImpl.kt
https://android-review.googlesource.com/3046833
Branch: androidx-main
commit 9082f62682f853ad5251a1c79dde9eccba7abdd9
Author: Max Alfonso-Ying <maxying@google.com>
Date: Thu Apr 18 00:34:40 2024
[M2 text field] Apply background to decoration box
...instead of to the BasicTextField, so changing the
backgroundColor will properly change the decoration
box's background color.
Fixes:
Test: added unit tests
Relnote: "Fix backgroundColor not applying to
TextFieldDecorationBox and OutlinedTextFieldDecorationBox.
Decoration boxes now accept a `shape` parameter."
Change-Id: I371c26718597cb36ac537e9412ce476532afb40d
M compose/material/material/api/current.txt
M compose/material/material/api/restricted_current.txt
M compose/material/material/integration-tests/material-demos/src/main/java/androidx/compose/material/demos/TextFieldDecorationBoxDemos.kt
M compose/material/material/src/androidInstrumentedTest/kotlin/androidx/compose/material/textfield/TextFieldDecorationBoxTest.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/OutlinedTextField.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextField.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextFieldDefaults.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/TextFieldImpl.kt
Description
Jetpack Compose component used: BasicTextField + TextFieldDecorationBox or OutlinedTextFieldDecorationBox
Android Studio Build: 2022.3.1 Patch 2 | Build #AI-223.8836.35.2231.10811636
Kotlin version: 1.9.10
Steps to Reproduce or Code Sample to Reproduce:
Using this code snippet, Im not able to apply a backgroundColor to the decoration box, whether outlined or filled.
```
@OptIn(ExperimentalMaterialApi::class)
@Composable
fun BasicTextFieldIssue(inputText: String = "") {
var text by remember { mutableStateOf(inputText) }
val interactionSource = remember { MutableInteractionSource() }
BasicTextField(
interactionSource = interactionSource,
value = text,
onValueChange = {},
) {
TextFieldDefaults.TextFieldDecorationBox(
value = inputText,
visualTransformation = VisualTransformation.None,
innerTextField = it,
enabled = true,
interactionSource = interactionSource,
singleLine = true,
colors = TextFieldDefaults.textFieldColors(
backgroundColor = Color.Red, // <--- Not applied as expected.
),
)
}
}
```
OR
```
@OptIn(ExperimentalMaterialApi::class)
@Composable
fun BasicTextFieldIssue(inputText: String = "") {
var text by remember { mutableStateOf(inputText) }
val interactionSource = remember { MutableInteractionSource() }
BasicTextField(
interactionSource = interactionSource,
value = text,
onValueChange = {},
) {
TextFieldDefaults.OutlinedTextFieldDecorationBox(
value = inputText,
visualTransformation = VisualTransformation.None,
innerTextField = it,
enabled = true,
interactionSource = interactionSource,
singleLine = true,
colors = TextFieldDefaults.outlinedTextFieldColors(
backgroundColor = Color.Red,
),
)
}
}
```
Expected:
I expect the background of my TextField to be set to the Color red in those 2 examples.
Stack trace (if applicable):