2013-05-16 7 views
21

Ich bin verrückt mit diesem kleinen Problem. Ich habe ein "switch" -Form Widget, aber egal wie sehr ich es versuche, ich kann es nicht enger machen. Selbst wenn ich ein Zeichen anstelle von 'ON' oder 'OFF' habe, bleibt die Größe des Schalters gleich. Der "Daumen" wird klein, aber er muss über die gleiche Distanz wie zuvor gezogen werden. Wenn Sie die 'layout_width' auf einen kleineren Wert ändern, wird die verbleibende Spur einfach abgeschnitten. 'minWidth' scheint nichts zu tun.Wie ändere ich die Breite der Switch-Spur von Android?

Weiß jemand, wie ich das tun kann? Idealerweise möchte ich nur einen leeren Daumen und ich werde beide Daumen farblich codieren, um zu wissen, welches was ist.

XML-Code:

<Switch 
    android:id="@+id/switch3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Switch" 
    android:textOff=" " 
    android:textOn=" " /> 

ich dies Gettin: enter image description here

aber ich möchte etwas wie folgt aus: enter image description here

+0

uns zeigen Sie Ihren XML-Code – chopchop

+0

android: layout_width = "" –

+0

dann wird die linke Seite abgeschnitten. Die Kluft zwischen beiden Seiten ist immer noch dieselbe. Ich möchte, dass die Lücke schmaler oder sogar überlappend ist. – NeilDA

Antwort

45

Ihre gewünschte Breite des Schalters in diesem Attribut .

android: switchMinWidth

wie

<Switch 
android:id="@+id/switchVisitAgain" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="center_vertical" 
android:layout_margin="1dp" 
android:checked="false" 
android:gravity="center_vertical" 
android:switchMinWidth="56dp" 
android:textOff="" 
android:textOn="" 
android:thumb="@drawable/round_button" 
android:track="@drawable/button_black" /> 

Danke, bskania

+1

dies trimmt den linken Teil des Schalters. Irgendwelche Vorschläge, wie man einen symmetrischen Schalter erreicht? – user2511882

+0

Ja, wenn Sie den Standardschalter verwenden, wird nur der rechte Teil beschnitten. Ich hatte diese Lösung für die benutzerdefinierten Zeichensätze von Switch verwendet. – BSKANIA

+6

verbrachte fast zwei Wochen eine Lösung zu finden, immer versucht "setminWidth" Sie sind ein Lebensretter! PS: switchMinWidth = "0dp" ist was ich verwendet habe. Auf diese Weise skaliert der Schalter gemäß der ziehenden – Zen

2

Hier ist meine Lösung. Ich habe die Texte entfernt, das Padding der Spur festgelegt und die switchMinWidth-Stütze definiert. Das ist mein xml:

<Switch 
     android:id="@+id/theSwitchId" 
     android:textOn="" 
     android:textOff="" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:thumbTextPadding="5dp" 
     android:switchMinWidth="40dp" 
     android:layout_gravity="right|center_vertical" /> 

Ich hoffe, es hilft jemandem.

0

Sie sollten android:track statt android:thumb verwenden.

Mein Code:

<Switch 
    android:id="@+id/switch_security_tog" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_centerVertical="true" 
    android:layout_marginRight="16dp" 
    android:background="@color/transparent" 
    android:button="@null" 
    android:textOff="" 
    android:textOn="" 
    android:thumb="@null" 
    android:switchMinWidth="56dp" 
    android:track="@drawable/thumb" /> 
Verwandte Themen