style name = "AppTheme" parent = "Theme.MaterialComponents.Light.DarkActionBar"

и вкладок: Мой текущий метод заключается в создании двух файлов (ic_list_selected_24dp.xml и ic_list_unselected_24dp.xml; они в основном одинаковы, но толькоandroid:fillColor='Color HEX CODE' отличаются), а затем создайте селектор (selector_tabitem_list.xml), чтобы изменить цвет рисования при изменении состояния.

// @drawable/selector_tabitem_list.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:drawable="@drawable/ic_list_selected_24dp" 
        android:state_selected="true" />
    <item android:drawable="@drawable/ic_list_unselected_24dp" 
        android:state_selected="false" />
</selector>

Это как бы дублируется, потому что два drawables одинаковы.

Селектор не может использоваться в векторном режиме.

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
    <path
        android:fillColor="@drawable/selector"
        android:pathData="M19,3...."
</vector>

-

// @drawable/selector

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true">
        <color android:color="@color/itemSelected" />
    </item>
    <item android:state_selected="false">
        <color android:color="@color/itemUnselected" />
    </item>
</selector>

, а такжеandroid:fillColor="@color/state" или.

// @color/state

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@android:color/white" android:state_selected="true" />
    <item android:color="@android:color/black" android:state_selected="false" />
</selector>

Есть ли способ использовать один рисунок и динамически менять его цвет? Использование жесткого шестнадцатеричного кода лучше?

Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос