2013-05-16 38 views
21

Sto impazzendo con questo piccolo problema. Ho un widget Modulo 'interruttore', ma non importa quanto ci provo, non riesco a renderlo più stretto. Anche se ho un carattere invece di "ON" o "OFF", la dimensione dell'interruttore rimane la stessa. Il "pollice" diventa piccolo, ma deve essere trascinato alla stessa distanza di prima. La modifica di 'layout_width' su un valore inferiore semplicemente interrompe la traccia rimanente. 'MinWidth' non sembra fare nulla.Come modificare la larghezza della traccia Switch di Android?

Qualcuno sa come posso fare questo? Idealmente, voglio solo un pollice vuoto e visualizzerò il codice colore per sapere quale è quale.

codice XML:

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

sto gettin questo: enter image description here

ma voglio qualcosa di simile: enter image description here

+0

ci mostrano il codice XML – chopchop

+0

android: layout_width = "" –

+0

poi il lato sinistro viene tagliato fuori. Il divario tra le due parti è sempre lo stesso. Voglio che lo spazio intermedio sia più stretto o addirittura sovrapposto. – NeilDA

risposta

45

impostare la larghezza desiderata di interruttore in questo attributo .

Android: switchMinWidth

come

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

Grazie, bskania

+1

questo ritaglio della parte sinistra dell'interruttore. Qualche suggerimento su come ottenere un interruttore simmetrico? – user2511882

+0

sì, se si utilizza l'opzione predefinita, quindi taglia solo la parte destra. Avevo usato questa soluzione per i drawable personalizzati di switch. – BSKANIA

+6

trascorso quasi due settimane a capire una soluzione, sempre cercato di "setminWidth" sei un vero toccasana! PS: switchMinWidth = "0dp" è quello che ho usato. In questo modo lo switch scala in base alla soluzione estraibile – Zen

2

Ecco la mia soluzione. Ho rimosso i testi, impostato il padding della traccia e definito il puntello switchMinWidth. Questo è il mio 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" /> 

Spero che aiuti qualcuno.

0

È necessario utilizzare android:track anziché android:thumb.

Tutto il mio codice:

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