Не удалось увидеть вкладку Tab в библиотеке поддержки дизайна TabLayout

Я использую библиотеку материалов и создаю макет с помощью CoordinatorLayout, AppBarLayout, RecyclerView и TabLayout.

Моя проблема в том, что я не могу увидеть индикатор вкладки в TabLayout.Below - это мой xml файл, который я использую в AppCompactActivity.

<android.support.design.widget.CoordinatorLayout
        android:id="@+id/coodinate_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/btn_next_screen">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/list_recycle"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="30dp"
            android:background="@color/white"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"

            />

        <android.support.design.widget.AppBarLayout
            android:id="@+id/abar_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar_home"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="?attr/colorPrimary"
                android:minHeight="?attr/actionBarSize"
                app:layout_scrollFlags="scroll|enterAlways"

                >


            </android.support.v7.widget.Toolbar>

            <android.support.design.widget.TabLayout
                android:id="@+id/tab_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:tabBackground="@color/tab_bg"
                app:tabIndicatorColor="@color/tab_indicator"
                app:tabIndicatorHeight="5dp"
                app:tabMode="fixed"

                ></android.support.design.widget.TabLayout>


        </android.support.design.widget.AppBarLayout>


        <android.support.design.widget.FloatingActionButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="15dp"
            app:layout_anchor="@+id/list_recycle"
            app:layout_anchorGravity="bottom|right"
            android:id="@+id/floatin_ab_home"
            app:fabSize="mini"
            android:src="@drawable/ic_content_add"

            />


    </android.support.design.widget.CoordinatorLayout> 

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

Screen which missing Tab Indicator

Ответы

Ответ 1

Я думаю, что это ошибка в библиотеке поддержки дизайна. что Когда вы одновременно применяете оба свойства

app:tabBackground="@color/tab_bg"
app:tabIndicatorColor="@color/tab_indicator"

цвет фона перекрывает индикатор вкладки . что индикатор табуляции не отображается.

Если вы удалите свойство цвета tabBackground, вы увидите индикатор.

[Обновить 25-06-2015]

Как я сказал , это ошибка в библиотеке поддержки дизайна. Я сообщил об этом в источник ошибок для Android. здесь приведено refrence https://code.google.com/p/android/issues/detail?id=176540.

Таким образом, для этого является проблема FutureRelease, поэтому исправлена ​​ошибка. И это придет в будущей библиотеке.

[Обновить 20-07-2015]

Исправлена ​​ошибка и была выпущена в версии 22.2.1. вы также можете проверить его по ссылке выше.

Ответ 2

Вы можете использовать ниже методы

1 Изменение xml  app: tabIndicatorColor = "" установить цвет индикатора

2 создание темы костюма

<style name="AppTheme.TabStyle" parent="Widget.Design.TabLayout">
        <item name="tabTextAppearance">@style/AppTheme.TextStyle</item>
        <item name="tabTextColor">@color/primaryDark</item>
        <item name="tabSelectedTextColor">@color/white</item>
        <item name="tabIndicatorColor">@color/primaryDark</item>
        <item name="tabIndicatorHeight">3dp</item>
        <item name="android:background">?attr/colorPrimary</item>
    </style>

    <style name="AppTheme.TextStyle" parent="TextAppearance.Design.Tab">
        <item name="android:textSize">14sp</item>
        <item name="textAllCaps">true</item>
    </style>

установить тему в своем вкладке

Ответ 3

Вы используете RecyclerView в качестве основного контента, используйте ViewPager, содержащий RecyclerView, и убедитесь, что вы предоставили атрибут viewpage app:layout_behavior="@string/appbar_scrolling_view_behavior"

Ответ 4

Используйте app1: tabIndicatorColor вместо приложения: tabIndicatorColor. Он автоматически создаст пространство имен app1 при использовании этого атрибута.

Ответ 5

Я только что исправил эту ошибку, задав цвет фона программно

tabLayout.setBackgroundColor(getResources().getColor(R.color.primary));

или в xml

android:background="@color/primary"

Но я не знаю, есть ли какие-либо проблемы при установке цвета фона таким образом

Ответ 6

Здесь вы идете..:)

Изменить ваш атрибут

Приложение: tabBackground= "@цвет/tab_bg"

to

Android: фон= "@цвет/tab_bg"

ваш окончательный код..

 <android.support.design.widget.TabLayout
            android:id="@+id/tab_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/tab_bg"
            app:tabIndicatorColor="@color/tab_indicator"
            app:tabIndicatorHeight="5dp"
            app:tabMode="fixed">
 </android.support.design.widget.TabLayout>