Правильный атрибут темы для значков AppBar - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть векторные иконки в AppBar. Как я могу убедиться, что они получают правильный цвет в зависимости от темы?

Мое приложение использует Theme.MaterialComponents.DayNight.NoActionBar с пользовательскими colorPrimary и colorSecondary.

Если значки выглядят так:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:tint="?attr/colorOnSurface">
    <path android:fillColor="#FFFFFF" android:pathData="..." />
</vector>

или они должны использовать colorControlNormal?

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:tint="?attr/colorControlNormal">
    <path android:fillColor="#FFFFFF" android:pathData="..." />
</vector>

или colorOnPrimarySurface? (Это делает его всегда белым)

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:tint="?attr/colorOnPrimarySurface">
    <path android:fillColor="#FFFFFF" android:pathData="..." />
</vector>

или цвет должен быть в path?

<vector xmlns:android="http://schemas.android.com/apk/res/android" >
    <path android:fillColor="?attr/colorControlNormal (colorOnSurface)" android:pathData="..." />
</vector>

или цвет должен быть не здесь, а прямо в макет?

<vector xmlns:android="http://schemas.android.com/apk/res/android">
    <path android:fillColor="#FFFFFF" android:pathData="..." />
</vector>

<com.google.android.material.appbar.AppBarLayout
        android:foregroundTint="?attr/colorControlNormal" (colorOnSurface)
        android:theme="@style/ThemeOverlay.MaterialComponents.ActionBar"
        app:popupTheme="@style/ThemeOverlay.MaterialComponents.Light">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize" />

</com.google.android.material.appbar.AppBarLayout>

1 Ответ

0 голосов
/ 20 апреля 2020

Хорошо, я думаю, что нашел ответ

Он должен быть colorControlNormal

В значках меню / навигации:

<vector
    ...
    android:tint="?attr/colorControlNormal">
    ...
</vector>

Источник: https://material.io/develop/android/components/top-app-bars/#regular -top-app-bar

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...