Установить цвет фона для MaterialCardView в kotlin? - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь установить цвет фона для моего MaterialCardView, но у меня нет ожидаемого результата, я попытался следующими способами:

card.setBackground = R.color.red_color

Я подумал, потому что шестнадцатеричные числа, которые мой MaterialCardView показывает безbackground:

card.setCardBackgroundColor(0xB00020)

Единственный способ, которым я могу отображать свои карты в цвете, - это, но MaterialCardView показывает с прозрачностью, если я, например, добавлю 0xFFB00020, Android Studio выдаст мне ошибку, потому что функция ожидаетцелое число, но я не могу понять, почему мой ide выдает мне ошибку ?, если предполагается, что я передаю шестнадцатеричное число в качестве параметра:

card.setcardBackgroundColor(0x79B00020)

Это мой код:

 override fun onBindViewHolder(holder: TableHolder, position: Int) {
        if (position < tableList.size) {
            val table = tableList[position]
            val node = holder.table
            //Log.e("NODE", node.toString())
            holder.guestNumber.text = table.people.toString()
            holder.tableName.text = table.description
            if (node is MaterialCardView) {
                when (table.status) {
                    "A" -> {
                        holder.descriptionTable.text = "ABIERTA"
                        node.setCardBackgroundColor(0xFF7903DAC6)
                    }
                    "D" -> {
                        holder.descriptionTable.text = "DISPONIBLE"
                        node.setCardBackgroundColor(0x79CA4B02)
                    }
                    "C" -> {
                        holder.descriptionTable.text = "CERRADA"
                        node.setCardBackgroundColor(0x79FF0266)
                    }
                    else -> {
                        holder.descriptionTable.text = node.context.getString(R.string.error_label)
                        node.setCardBackgroundColor(0x79B00020)
                    }
                }
            }
        }
    }

Первый случай выдает ошибку для 0xFF ...

РЕДАКТИРОВАТЬ

Я нашел решение! Для установки цвета фона для MaterialCardView в Kotlin необходимо проанализировать шестнадцатеричное значение для Int, например: 0xFFCA4B02.toInt() Но кто-то может объяснить мне, почему это необходимо в kotlin?

Я надеюсь, что кто-то можетпомоги мне, привет.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Я только что протестировал создание ресурса для цвета и передачу его в качестве параметра, подобного этому, и он не применял никакой прозрачности:

val cardColor = ContextCompat.getColor(context!!, R.color.card_background)
node.setCardBackgroundColor(cardColor)
0 голосов
/ 26 февраля 2019

Попробуйте что-то подобное, потому что нужно разобрать цвет.Цвет, который я добавил, это RED

node.setCardBackgroundColor(Color.parseColor("#ffff0000"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...