2013-05-16 26 views
21

Szaleję z powodu tego drobnego problemu. Mam widżet formularza "przełączania", ale nie ważne, jak bardzo się staram, nie mogę go zawęzić. Nawet jeśli mam jeden znak zamiast "ON" lub "OFF", rozmiar przełącznika pozostaje taki sam. "Kciuk" staje się mały, ale musi być przeciągnięty na taką samą odległość jak poprzednio. Zmiana "layout_width" na mniejszą wartość po prostu odcina pozostałą ścieżkę. "minWidth" nie robi nic.Jak zmienić szerokość ścieżki Przełączanie systemu Android?

Ktoś wie, jak mogę to zrobić? Idealnie chcę po prostu pusty kciuk i będę kolorować kod kciukiem, aby wiedzieć, który jest który.

kod XML:

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

jestem gettin to: enter image description here

ale chcę coś takiego: enter image description here

+0

pokazać nam swój kod xml – chopchop

+0

android: layout_width = "" –

+0

to lewa strona jest odcięty. Luka między obydwoma stronami jest wciąż taka sama. Chcę, aby różnica pomiędzy nimi była węższa, a nawet zachodziła na siebie. – NeilDA

Odpowiedz

45

ustawić żądaną szerokość przełącznika w tym atrybucie .

android: switchMinWidth

jak

<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" /> 

Dzięki, bskania

+1

ten przycinanie lewej części przełącznika. Wszelkie sugestie, jak osiągnąć symetryczny przełącznik? – user2511882

+0

Tak, jeśli używasz domyślnego przełącznika, to tylko przycina prawą część. Użyłem tego rozwiązania dla niestandardowych rysunków przełącznika. – BSKANIA

+6

spędził prawie dwa tygodnie na szukaniu rozwiązania, zawsze próbując "setminWidth" jesteś ratownikiem! PS: switchMinWidth = "0dp" jest tym, czego użyłem. W ten sposób przełącznik skaluje się zgodnie z wielostanowiskowymi prostownikami – Zen

2

Oto moje rozwiązanie. Usunąłem teksty, ustawiłem dopełnienie ścieżki i zdefiniowałem propan switchMinWidth. To jest mój 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" /> 

Mam nadzieję, że to pomoże komuś.

0

Powinieneś użyć android:track zamiast android:thumb.

Całe Kod:

<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" /> 
Powiązane problemy