Aktivieren / Deaktivieren von Android ActionBar.Tab

8

Ich entwickle eine Anwendung, die das neue Tab-System verwendet (ActionBar.addTab ()), ich werde 3 Tabs haben. Während eines bestimmten Prozesses möchte ich zwei von ihnen sperren (deaktivieren) (nicht entfernen, nur keine Klicks akzeptieren und nicht den 'Selektor' ändern.

Ich konnte den Inhalt nicht ändern (indem ich den TabListener implementiere und das Fragment nicht ändere usw.), aber der Selektor ändert sich.

Sollen die Registerkarten nur deaktiviert / aktiviert werden? ohne müssen entfernen und neu hinzufügen?

Vielen Dank im Voraus! BR, Danilo

    
DaniloBertelli 06.03.2012, 14:25
quelle

3 Antworten

2

Entschuldigung, es gibt kein "enable" oder "disable" mit Tabs in der Aktionsleiste. Wie Sie bemerken, können Sie sie entfernen und neu hinzufügen - das ist der nächste, den Sie AFAIK erhalten können.

    
CommonsWare 06.03.2012 14:53
quelle
1

Ich habe genau das gleiche Problem. Endlich konnte es lösen. Wie bereits gesagt, gibt es keine Möglichkeit, eine Registerkarte zu deaktivieren / aktivieren. Es gibt nur einen Ausweg - und das ist, mit

zum vorherigen Tab zurückzukehren %Vor%

Beachten Sie jedoch, dass dies NICHT innerhalb des

erfolgen sollte %Vor%

Methode, weil es dann in rekursive Schleife stecken bleibt. Also innerhalb der onTabSelected () - senden Sie eine Nachricht an den Activity Handler, um die setSelectedNavigation () zu tun.

Ein Haken hier ist (Sie werden wissen, wenn Sie implementieren): Was "Tab" -Wert in der setSelectedNavigation passieren. Dazu müssen wir im Auge behalten, ob es sich um einen vom Benutzer gedrückten Tab-Schalter oder um einen erzwungenen Wechsel zur letzten Registerkarte über den Code handelt.

Dafür:

%Vor%

und im Handler,

%Vor%     
KurtCobain 13.06.2014 06:01
quelle
0

Ich hatte auch das gleiche Problem.Meine Anwendung hat drei Registerkarten und jede Registerkarte hat Schaltflächen, um auf die nächste und vorherige Registerkarte zu bewegen. Ich finde keine Methode zum Aktivieren oder Deaktivieren der Registerkarte.

Ich habe die DataSetter-Klasse verwendet, um die zuvor ausgewählte Tab-Position und den booleschen Wert zu halten, um die Tab-Auswahl zu bestimmen. Wenn das boolesche Flag wahr ist, hat der Benutzer die nächste / vorherige Taste gedrückt. Andernfalls versucht der Benutzer, die Registerkarte auszuwählen, indem er drückt die wir nicht zulassen.
Ich benutzte Handler für die Tab-Auswahl.Inside-Fragment, wenn der Benutzer auf die nächste Schaltfläche klickte ich diese Anfrage. Broadcast-Anfrage hat einen Integer-Parameter, der die Position der nächsten oder vorherigen Registerkarte ist, die wir setzen möchten. Code innerhalb des Fragments ist:

%Vor%

Ich habe CustomViewPager anstelle von ViewPager verwendet, um das Durchziehen von Tabs zu verhindern. CustomViewPager-Klasse ist:

%Vor%

Fügen Sie in der oncreate-Methode von MainActivity.java diese zwei Zeilen hinzu:

%Vor%

Nachfolgend finden Sie den verbleibenden Code von MainActivity.java:

%Vor%

Schließlich DataSetter.java:

%Vor%

Mehr finden Sie auf: Ссылка

    
Suhas Patil 09.10.2014 10:57
quelle