Entferne die Auswahlzeile unter der aktuellen Registerkarte für eine TabLayout

8

Ich verwende ein TabLayout mit 3 Tabs. Ich habe die Ansicht meiner Tabs angepasst und muss daher die folgende Zeile unter meinen Tabs entfernen (der Screenshot stammt nicht von meiner App):

Ich bin NICHT mit einem TabHost oder einem TabWidget und daher kann ich setStripEnabled(false) nicht verwenden. Das Einstellen des Hintergrunds auf transparent ändert auch nichts.

Hier ist mein xml:

%Vor%

Alle Antworten, die ich gefunden habe, verwenden TabHost , TabWidget . In meinem Fall verwende ich ein TabLayout und drei Tab . Wie kann ich diese Zeile in diesem Fall entfernen? Vielen Dank.

BEARBEITEN Einige Methoden aus TabLayout können aus bestimmten Gründen nicht in meinem Code aufgelöst werden. Es gibt den Java-Code, den ich verwende:

%Vor%

und sein Import:

%Vor%     
Virthuss 21.12.2015, 04:10
quelle

5 Antworten

16

Wie die beiden Antworten nahelegen, war der Schlüssel das Attribut tabIndicatorHeight .

Allerdings konnte die Methode aus der API aus einigen Gründen nicht gelöst werden. In diesem Fall müssen Sie dies direkt aus der XML-Datei beheben:

%Vor%

In Ihrem <android.support.design.widget.TabLayout> Layout.

Als ein Beispiel:

%Vor%     
Virthuss 21.12.2015, 04:54
quelle
5

Selbst ich hatte in letzter Zeit das gleiche Problem. Ich stieß auf das Attribut height xml und änderte es in 0dp, um den Trick für mich zu machen.

%Vor%

ODER

Ich denke auch, dass das Farbattribut des Indikators genauso wie der Hintergrund der Tabs geändert werden sollte. Ich habe diese Lösung nicht getestet, aber ich denke, es sollte auch funktionieren.

%Vor%

Die erste Option ist besser und hat bei mir funktioniert.

Keiner von diesen ist so gut wie tatsächlich den Indikator zu deaktivieren, aber das Problem unabhängig zu lösen.

    
mysticfyst 14.07.2016 09:23
quelle
4

es scheint, es gibt API wie;
void setSelectedTabIndicatorColor(int color)
void setSelectedTabIndicatorHeight(int height)

Ссылка

    
wyverny 21.12.2015 04:20
quelle
4

Für TabLayout verwenden Sie einfach Folgendes: " tabLayout.setSelectedTabIndicatorColor (Color.TRANSPARENT); "

%Vor%     
Sach 10.06.2016 10:17
quelle
2

Sie können die Höhe der Registerkartenanzeige auf 0 setzen, um sie zu "entfernen", zum Beispiel: tabLayout.setSelectedTabIndicatorHeight(0);

    
jomartigcal 21.12.2015 04:22
quelle

Tags und Links