color de fondo en el botón en Jetpack Compose

2 minutos de lectura

avatar de usuario de shotmeinthehead
disparándome en la cabeza

Button(backgroundColor = Color.Yellow) {
    Row {
        Image(asset = image)
        Spacer(4.dp)
        Text("Button")
    }
}

No puedo entender por qué no puedo usar el color de fondo en Button.

Seguí los codelabs de Compose Layout.
Hay un problema en backgroundColor y activo en Image().

  • PD: también soy nuevo en stackoverflow. Entonces, por favor dime qué hice mal 🙂

    – me disparó en la cabeza

    15 oct 2020 a las 16:55

Avatar de usuario de Elye
Elye

Usar ButtonDefaults que está disponible en 1.0.0-alpha09 a alpha11

Button(
   onClick = {},
   colors = ButtonDefaults.buttonColors(backgroundColor = Color.Yellow)
) {
   /**/
}

VERSIÓN ANTIGUA

los backgroundColor por Button ya no trabajo en 1.0.0-alpha7

Use lo siguiente en su lugar

Button(
   onClick = {},
   colors = ButtonConstants.defaultButtonColors(backgroundColor = Color.Yellow)
) {
   /**/
}

  • la intuición me dice Modifier.background(Color) debería funcionar aquí, pero Google tenía otros planes reservados…

    – kc_dev

    28 de diciembre de 2021 a las 14:31


Avatar de usuario de Gabriele Mariotti
gabriele mariotti

Puedes usar el ButtonDefaults.buttonColors

Button(
     onClick = {  },
     colors = ButtonDefaults.buttonColors(
          backgroundColor = Color.White,
          contentColor = Color.Red)
)

  • ¿Qué hay de cómo pasar el onClick a otra pantalla?

    – me disparó en la cabeza

    15 oct 2020 a las 17:40

  • @FadelFarinsqi, por ejemplo, solo use startActivity(intent) como normal Activity en Android

    – Gabriele Mariotti

    15 oct 2020 a las 17:46

los ButtonConstants.defaultButtonColor está en desuso en 1.0.0-alpha09 usar :

 colors = ButtonDefaults.buttonColors(backgroundColor = Color.Yellow)

Componer el color de los botones de fondo
cree una variable mainButtonColor y defina el color de fondo y el color del contenido

implementation 'androidx.compose.material3:material3:1.0.0-alpha02'
    val mainButtonColor = ButtonDefaults.buttonColors(
        containerColor = androidx.compose.ui.graphics.Color.Red,
        contentColor = MaterialTheme.colorScheme.surface
    )

    Row {
        Button(colors = mainButtonColor, onClick = {}, modifier = Modifier.padding(8.dp)) {
            Text(text = "Custom colors")
        }
    }

Cambiar el color del botón

Colores personalizados

  • Para crear un color personalizado, necesita el valor RGB de ese color.
         Button(
            onClick = {  },
            colors = ButtonDefaults.buttonColors(
                    backgroundColor = Color(red = 255, green = 169, blue = 0)
                )
            ) {}

  • backgroundColor = Color(red = 255, green = 169, blue = 0) es como cambiamos el color de fondo del botón a un color personalizado

¿Ha sido útil esta solución?