Ich versuche, das neue Design TabLayout in meinem Projekt zu verwenden. Ich möchte, dass sich das Layout an jede Bildschirmgröße und Ausrichtung anpasst, aber es kann in einer Ausrichtung korrekt angezeigt werden.
Ich habe es mit Schwerkraft und Modus zu tun, indem ich mein tabLayout wie folgt einstelle:
tabLayout.setTabGravity(TabLayout.GRAVITY_CENTER);
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
Ich gehe davon aus, dass das tabLayout scrollbar ist, wenn kein Platz vorhanden ist. Wenn jedoch Platz vorhanden ist, wird es zentriert.
Aus den Guides:
public static final int GRAVITY_CENTER Schwerkraft, mit der die Registerkarten in der Mitte des TabLayouts angeordnet werden.
public static final int GRAVITY_FILL Die Schwerkraft wird verwendet, um das TabLayout so weit wie möglich zu füllen. Diese Option wird nur wirksam, wenn sie mit MODE_FIXED verwendet wird.
public static final int MODE_FIXED Feste Registerkarten zeigen alle Registerkarten gleichzeitig an und werden am besten mit Inhalten verwendet, die von schnellen Pivots zwischen Registerkarten profitieren. Die maximale Anzahl von Registerkarten ist durch die Breite der Ansicht begrenzt. Feste Registerkarten haben die gleiche Breite, basierend auf der breitesten Registerkartenbezeichnung.
public static final int MODE_SCROLLABLE Bildlaufbare Registerkarten zeigen zu jedem Zeitpunkt eine Teilmenge von Registerkarten an und können längere Registerkartenbezeichnungen und eine größere Anzahl von Registerkarten enthalten. Sie eignen sich am besten zum Durchsuchen von Kontexten in Touch-Oberflächen, wenn Benutzer die Registerkartenbezeichnungen nicht direkt vergleichen müssen.
GRAVITY_FILL ist also nur mit MODE_FIXED kompatibel, aber da für GRAVITY_CENTER nichts angegeben ist, erwarte ich, dass es mit MODE_SCROLLABLE kompatibel ist, aber das bekomme ich mit GRAVITY_CENTER und MODE_SCROLLABLE
Es wird also SCROLLABLE in beiden Ausrichtungen verwendet, jedoch nicht GRAVITY_CENTER.
Das würde ich für die Landschaft erwarten; Aber um dies zu haben, muss ich MODE_FIXED setzen, also bekomme ich im Hochformat:
Warum funktioniert GRAVITY_CENTER nicht für SCROLLABLE, wenn das tabLayout zum Bildschirm passt? Gibt es eine Möglichkeit, die Schwerkraft und den Modus dynamisch einzustellen (und zu sehen, was ich erwarte)?
Vielen Dank!
BEARBEITET: Dies ist das Layout meines TabLayout:
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:background="@color/orange_pager"
android:layout_height="wrap_content" />