цвет фона на кнопке в Jetpack Compose

#android #android-button #android-jetpack-compose #android-compose-button

#Android #android-кнопка #android-jetpack-compose #android-кнопка создания

Вопрос:

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

Я не могу понять, почему я не могу использовать цвет фона Button .

Я следил за составлением макета codelabs.
Существует проблема в backgroundColor и активе в Image ().

Комментарии:

1. PS: Я также новичок в stackoverflow. Итак, пожалуйста, скажите мне, что я сделал не так 🙂

Ответ №1:

Используйте ButtonDefaults , который доступен в версии 1.0.0 -от alpha09 до alpha11

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

СТАРАЯ ВЕРСИЯ

backgroundColor Для Button больше не работает в 1.0.0-alpha7

Вместо этого используйте приведенное ниже

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

Комментарии:

1. Интуиция подсказывает мне Modifier.background(Color) , что здесь должно сработать, но у Google были другие планы…

Ответ №2:

Вы можете использовать ButtonDefaults.buttonColors

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

Комментарии:

1. как насчет того, как передать onClick на другой экран?

2. @FadelFarinsqi например, просто используйте startActivity(intent) как обычный Activity в Android

Ответ №3:

При ButtonConstants.defaultButtonColor 1.0.0-alpha09 использовании не рекомендуется :

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

Обновить версию 1.3.0 :

 colors = ButtonDefaults.buttonColors(containerColor = Color.Yellow),
  

Ответ №4:

Составьте цвет фоновых кнопок создайте переменную mainButtonColor и определите цвет фона и цвет содержимого

 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")
        }
    }
  

Изменить цвет кнопки

Ответ №5:

ШАГ 1: просто установите только bg:

     Button(
        colors = buttonColors(Color.Red),
        onClick = {}
    ) {
        Text(text = "Login")
    }
  

Полный набор цветов:

         Button(
            colors = ButtonDefaults.buttonColors(
                backgroundColor = Color.Red,
                contentColor = Color.Green,
                disabledBackgroundColor = Color.Yellow,
                disabledContentColor = Color.Magenta
            ),
            onClick = {}
        ) {
            Text(text = "Login")
        }
  

ШАГ 2 (необязательно): но это лучшая практика

Материал 2 корпус:

     Color.Red change MaterialTheme.colors.primary
  

Материал 3 корпус:

     Color.Red change MaterialTheme.colorScheme.tertiaryContainer
  

Ответ №6:

Пользовательские цвета

  • Чтобы создать пользовательский цвет, вам нужно значение RGB этого цвета.
          Button(
            onClick = {  },
            colors = ButtonDefaults.buttonColors(
                    backgroundColor = Color(red = 255, green = 169, blue = 0)
                )
            ) {}

  
  • backgroundColor = Color(red = 255, green = 169, blue = 0) как мы меняем цвет фона кнопки на пользовательский цвет