Пользовательский выбранный цвет вкладки в новом android.support.design.widget.TabLayout?

Я хотел бы знать, можно ли изменить выбранный цвет вкладки в новой вкладке дизайна? Я нашел решение для выбранного цвета текста вкладки, но я хотел бы знать, как изменить цвет самой вкладки.

введите здесь описание изображения

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        style="@style/TabLayout.Theme"
        android:layout_alignParentTop="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_below="@+id/tabs"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</RelativeLayout>





<style name="TabLayout.Theme" parent="Widget.Design.TabLayout">
        <item name="tabIndicatorColor">@color/black</item>
        <item name="tabIndicatorHeight">4dp</item>
        <item    name="tabTextAppearance">@style/TextAppearance.Jacksonville.Tab</item>
        <item name="tabSelectedTextColor">@color/text_dim</item>
        <item name="tabBackground">@color/color_heading</item>
    </style>

мне нужно изменить выбранный цвет вкладки, как это.


person praj    schedule 24.08.2015    source источник
comment
Пожалуйста, добавьте больше деталей к вопросу, так как это явно не ясно.   -  person Mohit Kanwar    schedule 24.08.2015
comment
пожалуйста, проверьте, я добавил изображение вкладки.   -  person praj    schedule 24.08.2015
comment
Было бы хорошо, если бы вы добавили соответствующий код :)   -  person Mohit Kanwar    schedule 24.08.2015
comment
пожалуйста, проверьте код   -  person praj    schedule 24.08.2015


Ответы (2)


вам просто нужно установить атрибут app:tabBackground

app:tabBackground="@drawable/tab_selector_color"

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

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

поэтому полный xml-код будет выглядеть так

 <android.support.design.widget.TabLayout
        android:id="@+id/sliding_tabs"
        android:layout_width="match_parent"
        android:layout_height="android:attr/listPreferredItemHeight"
        android:minWidth="0dp"
        app:tabMaxWidth="0dp"
        app:tabGravity="fill"
        app:tabMode="fixed"
        app:tabTextColor="@color/white"
        app:tabIndicatorHeight="0dp"
        app:tabSelectedTextColor="@color/white"
        app:tabIndicatorColor="@color/mainBlue"
        app:tabBackground="@drawable/tab_color_selector"/>
person Govind Sharma    schedule 10.01.2018

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

 <style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">

        <!-- the color you want in selected tab -->
        <item name="tabIndicatorColor">#50000000</item>
        <item name="tabTextAppearance">@style/MyCustomTabTextAppearance</item>

           <!-- set the indicator hieght equal to tablayout height -->
        <item name="tabIndicatorHeight">60dp</item>
        <item name="tabSelectedTextColor">#222222</item>
person Ziad Gholmish    schedule 07.09.2015