wake-up-neo.net

Tabulatoranzeige in der TabLayout-Design-Unterstützungsbibliothek nicht angezeigt

Ich verwende Material Design Library und erstelle Layout mit CoordinatorLayout, AppBarLayout, RecyclerView und TabLayout.

Mein Problem ist, dass ich den Tab-Indikator nicht in Tablayout sehen kann. In diesem Fenster ist meine XML-Datei, die ich in AppCompactActivity verwende.

<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> 

Darunter ist ein Bildschirm, der kein Tab-Symbol zeigt, also kann jeder wissen, was mir fehlt.

Screen which missing Tab Indicator

14
Herry

Ich denke, es ist ein Fehler in der Design Support-Bibliothek . dass Wenn Sie beide Eigenschaften gleichzeitig anwenden

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

die Hintergrundfarbe überlappen den Tab-Indikator . Deshalb ist der Tabulator nicht sichtbar.

Wenn Sie die tabBackground-Farbeigenschaft entfernen, wird der Indikator angezeigt.

[Update am 25-06-2015]

Wie gesagt: Es ist ein Fehler in der Design Support-Bibliothek . Ich habe es an die Android-Fehlerquelle gemeldet. Hier ist die Zusammenfassung https://code.google.com/p/Android/issues/detail?id=176540 .

Der Status für dieses Problem ist also FutureRelease und der Fehler ist behoben. Und es wird in die zukünftige Bibliothek kommen.

[Update 20-07-2015]

Der Fehler wurde behoben und in Version 22.2.1 veröffentlicht. Sie können es auch über den obigen Link überprüfen.

30
Moinkhan

Sie können die folgenden Methoden verwenden

1 Ändern Sie in xml App: tabIndicatorColor = "" setzen Sie Ihre Indikatorfarbe

2 Erstellen eines Kostümthemas 

<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>

setze ein Thema in dein Tablayout

9
MayurDev

Ich habe gerade diesen Fehler behoben, indem ich die Hintergrundfarbe programmgesteuert einstellte

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

oder in xml

Android:background="@color/primary"

Aber ich weiß nicht, ob es Probleme gibt, wenn Sie die Hintergrundfarbe auf diese Weise einstellen

0
Jhonatas

Bitte schön.. :)

Ändern Ihr Attribut

App: tabBackground= "@ color/tab_bg"

zu

Android: Hintergrund= "@ color/tab_bg"

ihr endgültiger Code ..

 <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>
0
Aks4125

Sie verwenden RecyclerView als Hauptinhalt, verwenden ViewPager mit RecyclerView und stellen Sie sicher, dass Sie das viewpage-Attribut app:layout_behavior="@string/appbar_scrolling_view_behavior" angeben.

0
Rajesh Batth