Android Text sollte auf beiden Seiten im Switch erscheinen

9

Ich benutze benutzerdefinierte Schalter für die Unterstützung von API 8. Ich verwende DIES Libarary für benutzerdefinierte Switch. Aber ich möchte etwas wie Show in Abbildung machen. Ich habe versucht, die Farbe zu ändern, obwohl die Farbe im Stil ändert, aber nicht wie ich will.

Bitte helfen Sie mir, Danke im Voraus.

    
Mayur Raval 20.03.2014, 07:36
quelle

5 Antworten

8

Hier ist eine vollständige, funktionierende Lösung, nach einem spaßigen Tag, der dies implementiert.

Verwenden Sie Folgendes, um das Zeichen für die Spur des Schalters festzulegen. Die Spur ist der Container, in dem der Daumen nach links und rechts verschoben wird.

%Vor%

Hier ist die Implementierung von SwitchTrackTextDrawable , die den Text im Hintergrund genau an der richtigen Stelle schreibt (gut, ich habe es nur für API 23 auf einem Nexus 5 getestet):

%Vor%     
espinchi 06.10.2015 21:49
quelle
3

Versuchen Sie es mit

%Vor%

statt

%Vor%

in Schaltern.

Sie können auch durch dies gehen, wenn es hilft.

    
MysticMagicϡ 20.03.2014 08:10
quelle
1

Ich habe ein benutzerdefiniertes Layout erstellt, das ein lineares Layout enthält (wird als eine Spur des Schalters verwendet). In diesem Layout habe ich zwei Texte platziert, um die "An" / "Aus" Texte zu simulieren. Es hat einen normalen Schalter, aber keine Spur, nur einen Daumen mit transparenter Spur.

Wie auch immer, das ist der Code:

colors.xml

%Vor%

settings_switch_color_selector

%Vor%

styles.xml

%Vor%

new_switch.xml - wird in der benutzerdefinierten Ansicht verwendet

%Vor%

Dies ist eine benutzerdefinierte Ansicht - sie dient nur dazu, das Layout der benutzerdefinierten Ansicht aufzublähen

%Vor%     
Anton Makov 03.12.2015 19:00
quelle
1

Es gibt einen, der mit 2 Standardtasten und einem LinearLayout erstellt wurde. Es gibt eine Menge von XML-Dateien zum Importieren, aber es funktioniert perfekt auf allen Versionen und sehr einfach zu bedienen. Überprüfen Sie die folgende Github-Seite

Benutzerdefinierter Schalter mit 2 Tasten

Verwendung

  1. Kopieren Sie die XML-Dateien unter res / drawbar in den res / drawbaren Ordner Ihres Projekts.
  2. Kopieren Sie LinearLayout von layout.xml in Ihre Layoutdatei.
  3. Kopieren Sie Werte aus den Werten / colors.xml und values ​​/ dimens in Ihre eigenen Dateien.
  4. Initiiere den Schalter mit dem folgenden Code

SekizbitSwitch mySwitch = new SekizbitSwitch(findViewById(R.id.sekizbit_switch)); mySwitch.setOnChangeListener(new SekizbitSwitch.OnSelectedChangeListener() { @Override public void OnSelectedChange(SekizbitSwitch sender) { if(sender.getCheckedIndex() ==0 ) { System.out.println("Left Button Selected"); } else if(sender.getCheckedIndex() ==1 ) { System.out.println("Right Button Selected"); } } });

    
Eren Demir 07.04.2016 19:31
quelle
0

Nachdem ich darum gekämpft hatte, die richtige Lösung dafür zu finden, fand ich diese nette kleine Bibliothek . Ich fand es einfach zu bedienen und es hat meine Bedürfnisse perfekt erfüllt. Es kann sogar verwendet werden, um more als 2 Werte anzuzeigen.

So habe ich es schließlich mit etwas mehr Styling aussehen lassen, wie zum Beispiel mit der weißen Umrandung, die ich um eine FrameLayout umgebe, die es umhüllt (ich musste es so aussehen lassen, du brauchst keine Umrandung) :

Hier ist das XML dafür:

%Vor%

Und @drawable/white_border sieht so aus:

%Vor%

    
Vucko 10.03.2018 11:06
quelle