Как сделать фон TextField прозрачным?

Я использую Jetpack Compose с материалом Material3. Мой экран выглядит так. Я хочу, чтобы текстовое поле имело прозрачный фон вместо белого. Я опробовал приведенный ниже код (см. строку background(.., но он не работает. Что мне здесь не хватает?

TextField(          
        value = userNameValue.value,
        onValueChange = { userNameValue.value = it },
        modifier = Modifier
            .fillMaxWidth()
            .background(
                Color.Transparent
            ),
        label = {
            Text(
                "Names" //stringResource(id = R.string.username_label)
            )
        }
}

1
0
202
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

TextField Composable предлагает параметр colors. Оно принимает значение типа TextFieldColors, которое объединяет все виды цветов, содержащихся в TextField.

В вашем случае попробуйте переопределить все цвета, содержащие слово «Контейнер», примерно так:

TextField(
    value = userNameValue.value,
    onValueChange = { userNameValue.value = it },
    modifier = Modifier.fillMaxWidth(),
    label = {
        Text(
            text = "Names" //stringResource(id = R.string.username_label)
        ),
    },
    colors = TextFieldDefaults.colors(
        focusedContainerColor = Color.Transparent,
        unfocusedContainerColor = Color.Transparent,
        disabledContainerColor = Color.Transparent,
        errorContainerColor = Color.Transparent
    )
}

Вы можете добавить это в свой TextInputEditText.

android:backround = "@android:color/transparent"

Результаты (текстовое поле M3 с прозрачным фоном)

Это не работает с Compose, поскольку нет XML-файлов для определения компонентов. Как показывает ответ @BenjyTec, все это делается в коде.

Leviathan 05.04.2024 11:09

Но этот способ работает для меня всегда.

R AM 06.04.2024 17:02

Невозможно, если вы используете Compose. Используете ли вы Compose?

Leviathan 06.04.2024 20:15
TextInputEditText не является частью Jetpack Compose.
CommonsWare 07.04.2024 22:49

Другие вопросы по теме