TabLayout не меняет цвет элемента при переключении - PullRequest
0 голосов
/ 22 марта 2020

У меня есть tabLayout со значком, выбранная вкладка выделяет значок красным цветом, но другая вкладка также имеет значок красного цвета, и я хочу изменить этот цвет значка при переключении на эту вкладку, вместо этого два значка всегда красный

 val tabLayoutMediator = TabLayoutMediator(tabLayout, viewPager2,
            TabLayoutMediator.TabConfigurationStrategy { tab, position ->

                when (position) {
                    0 -> {
                        tab.text = "tab1"
                        tab.icon = ContextCompat.getDrawable(requireContext(),R.drawable.ic_fork)

                    }
                    1 -> {
                        tab.text = "tab2"
                        tab.icon = ContextCompat.getDrawable(requireContext(),R.drawable.ic_basket)
                    }
                }

            })
        tabLayoutMediator.attach()

XML

<com.google.android.material.tabs.TabLayout
            android:id="@+id/tabLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabInlineLabel="true"
            app:tabSelectedTextColor="@color/red" />

Ответы [ 2 ]

0 голосов
/ 22 марта 2020

Решено с

<android.support.design.widget.TabLayout
     android:id="@+id/tab_layout"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     app:tabIconTint="@color/your_color_selector"
     app:tabIndicatorColor="@color/selected_color"/>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/selected_color" android:state_selected="true"/>
    <item android:color="@color/unselected_color"/>
</selector>
0 голосов
/ 22 марта 2020

Создайте файл bg_tab. xml в папке для рисования.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/red" android:state_selected="true"/>
    <item android:drawable="@android:color/white" android:state_selected="false"/>
</selector>

и установите рисование, используя свойства tabBackground

<com.google.android.material.tabs.TabLayout
            android:id="@+id/tabLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabBackground="@drawable/bg_tab"
            app:tabInlineLabel="true"
            app:tabSelectedTextColor="@color/red" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...