Я использую TabLayout
и пытаюсь установить tabbackground
на белый с темным текстом .
Я не могу изменить цвет текста и, кажется, останется белым.
Это стиль, который я использовал:
<style name="TabWhiteText" parent="Base.TextAppearance.AppCompat"> <item name="android:textColor">@color/deepEggplant</item> </style> <style name="TabWhite" parent="Widget.Design.TabLayout"> <item name="tabSelectedTextColor">@color/deepEggplant</item> <item name="tabBackground">@android:color/white</item> <item name="tabIndicatorColor">@android:color/white</item> </style> <style name="TabWhiteMedium" parent="TabWhite"> <item name="android:textAppearance">@style/TabWhiteText</item> </style>
И применительно к этому:
<android.support.design.widget.TabLayout android:id="@+id/tabLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:elevation="4dp" android:layout_alignParentTop="true" style="@style/TabWhiteMedium" selectFromListView:tabMode="scrollable" />
Здесь есть хороший учебник: http://guides.codepath.com/android/google-play-style-tabs-using-tablayout
Который вы можете использовать textColor
с темным цветом или Фон фона в белый:
<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout"> <item name="tabMaxWidth">@dimen/tab_max_width</item> <item name="tabIndicatorColor">?attr/colorAccent</item> <item name="tabIndicatorHeight">2dp</item> <item name="tabPaddingStart">12dp</item> <item name="tabPaddingEnd">12dp</item> <item name="tabBackground">@android:color/white</item> <!-- Your white color maybe --> <item name="tabTextAppearance">@style/MyCustomTabTextAppearance</item> <item name="tabSelectedTextColor">?android:textColorPrimary</item> </style> <style name="MyCustomTabTextAppearance" parent="TextAppearance.Design.Tab"> <item name="android:textSize">14sp</item> <item name="android:textColor">#000000</item> <!-- Or your TabLayout textcolor to dark maybe --> <item name="textAllCaps">true</item> </style>
Затем просто используйте его как стиль для TabLayout
:
<android.support.design.widget.TabLayout android:id="@+id/tabs" style="@style/MyCustomTabLayout" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.design.widget.TabLayout>
Или другая настройка.
UPDATE: Кроме того, нет необходимости добавлять стиль, просто:
app:tabBackground="@android:color/white" app:tabTextColor="@color/darkcolor"
то есть:
<android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" app:tabIndicatorColor="#ffffff" app:tabIndicatorHeight="4dp" app:tabBackground="@android:color/white" app:tabTextColor="@color/darkcolor" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
Вы можете программно добавлять цвета к текстам вкладок с помощью setTabTextColors()
Обратитесь к документации TabLayout
Для добавления ресурсов цвета используйте ContextCompat.getColor (контекст, ваш идентификатор цветового ресурса здесь ) вместо прямого предоставления ресурса в качестве параметра