2017-01-18 3 views
0

Ich verwende ein TabLayout. Ich möchte die volle Bildschirmbreite mit TabLayout füllen, also habe ich app:tabGravity="fill" hinzugefügt. Mein Problem ist, dass der Tab-Text jetzt nicht zentriert ist. Hier ist ein Screenshot:Text innerhalb Tabs eines TabLayout ist nicht zentriert

Please see pink bar under Tab one

Der Code von TabLayout sich wie folgt:

<android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/toolbar" 
     app:tabMode="fixed" 
     app:tabGravity="fill" 
     app:tabTextColor="#d3d3d3" 
     app:tabSelectedTextColor="#ffffff" 
     app:tabIndicatorColor="#ff00ff" 
     android:minHeight="?attr/actionBarSize" 
     /> 

Ich habe viele Fragen gesehen, aber keiner von ihnen löst mein Problem. Jede Hilfe wird sehr geschätzt. Für Details möchte ich sagen, dass ich versuche this example. Das Gerät läuft unter Android 2.3.6 (API 10). Bildschirm ist 320 x 240.

Antwort

0

verwenden zum Einstellen des Textes verweisen:

android:gravity="center" OR android:textAlignment="center" 

sollten Sie erstellen eine benutzerdefinierte Registerkarte .. Sie verwenden diese Attribute für TabLayout, die nicht funktionieren werden ... der Beispiel-Link, den Sie oben angegeben haben, verwendet eine Datei namens cus tom_tab.xml. Verwenden Sie das, um Ihr textView zu definieren und diese Attribute darin zu setzen.

+0

Keiner von 'android: gravity =" center "' und 'android: textAlignment =" center "' kann das Problem lösen. –

+0

Es wäre besser, wenn Sie Ihren Kommentar zur Hauptantwort hinzufügen. –

0

Fügen Sie diese auf XML-Layout android:gravity="center"

Sie dies für weitere Details

http://joshclemm.com/blog/?p=136

+0

Bereits versucht. Es funktioniert nicht. Ich habe andere Fragen gesehen, die sagen, "android: gravity =" center "' zu benutzen. –

+0

verwenden Sie Textview zum Anzeigen. –

+0

sollten Sie Schwerkraft in der Textansicht nicht im Registerkartenlayout hinzufügen. –

0

Standardmäßig sollte der Text zentriert sein, wenn Sie nicht mit einem anderen nicht zentrierten Stil übergangen werden.

Jeder Weg, wenn Sie sicher Gravity="center" nicht funktioniert, können Sie auch Ihr benutzerdefiniertes Layout als Registerkarte Hintergrund setzen. So erstellen Sie ein relatives Layout, das eine textView im Zentrum hat. (Auf diese Weise können Sie das gewünschte Layout als Tab-Elemente verwenden).

TabLayout tabLayout = (TabLayout)findViewById(R.id.tab_layout); 
tabLayout.getTabAt(postion).setCustomView(resourceId); 

hoffentlich hilfreich.

0

Seltsamerweise zeigt die Vorschau in Android Studio die Registerkarte Etiketten zentriert, aber auf dem Gerät sind sie linksbündig.

Wie andere Antwort vorgeschlagen haben, ist die Verwendung einer benutzerdefinierten Ansicht eine gute Möglichkeit, die Kontrolle über das Layout zu gewinnen.

Erstellen einer Layoutdatei layout/view_tab_label.xml mit einem TextView mit id @android:id/text1, so dass Sie immer noch auf die Registerkarte Text innerhalb des TabItem angeben:

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:textColor="@color/tab_label" 
    android:gravity="center"/> 

Referenz dieses Layout auf der Registerkarte Punkt (android:layout Attribut in jedem TabItem):

<android.support.design.widget.TabLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:tabIndicatorColor="@color/selected_tab" 
    app:tabBackground="@color/tab_background"> 

    <android.support.design.widget.TabItem 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout="@layout/view_tab_label" 
     android:text="@string/tab_1_title" /> 

    <android.support.design.widget.TabItem 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout="@layout/view_tab_label" 
     android:text="@string/tab_2_title" /> 

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

erstellen einer Farbressourcendatei color/tab_label.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="@color/selected_tab" android:state_selected="true"/> 
    <item android:color="@color/unselected_tab" android:state_selected="false"/> 
</selector> 
Verwandte Themen