Убрать черный оттенок с IconButton в компоновке джетпака

Я использую IconButton в коде. Я использовал drawable с другим цветом. Когда я запускаю код, он показывает черное мышление. Так что здесь не так?

IconButton(
    onClick = {  }
) {
    Icon(
        painter = painterResource(R.drawable.ic_menu),
        contentDescription = null,
    )
}

Фактический результат

Ожидаемый результат

Я делюсь своим чертежным файлом здесь

ic_menu.xml

<vector xmlns:android = "http://schemas.android.com/apk/res/android"
    android:width = "20dp"
    android:height = "4dp"
    android:viewportWidth = "20"
    android:viewportHeight = "4">
    <path
        android:fillColor = "@color/aqua"
        android:fillType = "evenOdd"
        android:pathData = "M2,2m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0" />
    <path
        android:fillColor = "@color/aqua"
        android:fillType = "evenOdd"
        android:pathData = "M10,2m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0" />
    <path
        android:fillColor = "@color/aqua"
        android:fillType = "evenOdd"
        android:pathData = "M18,2m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0" />
</vector>

Почему бы вам не использовать параметр tint функции Icon?

Thracian 03.02.2023 18:23

Обязательно ли использовать тонировку?

Vivek Modi 03.02.2023 18:35
2
2
100
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вам нужно передать tint = Color.Unspecified в Icon, если вы хотите использовать исходный цвет значка без какого-либо оттенка по умолчанию.

Пример:

Icon(
    painter = painterResource(R.drawable.ic_menu),
    tint = Color.Unspecified,
    contentDescription = null
 )

Согласно официальной документации, Icon использует черный оттенок по умолчанию для всех ресурсов, когда вы не предоставляете какой-либо оттенок.

Как видите, он использует LocalContentColor, который по умолчанию черный.

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