2013-05-16 3 views
21

Я схожу с ума от этой крошечной проблемы. У меня есть виджет формы «switch», но как бы я ни старался, я не могу сделать его более узким. Даже если у меня есть один символ вместо «ON» или «OFF», размер переключателя остается неизменным. Большой палец становится маленьким, но его нужно перетащить на прежнее расстояние. Изменение «layout_width» на меньшее значение просто отключает оставшуюся дорожку. «minWidth», похоже, ничего не делает.Как изменить ширину трека переключателя Android?

Кто-нибудь знает, как я могу это сделать? В идеале я хочу просто пустой большой палец, и я буду красить код, чтобы узнать, что есть.

код XML:

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

Я получаю это: enter image description here

, но я хочу что-то вроде этого: enter image description here

+0

показать нам свой XML-код – chopchop

+0

андроида: layout_width = "<любое меньшее количество ниже, чем wrap_content>" –

+0

то левая сторона обрезаны. Разрыв между обеими сторонами остается прежним. Я хочу, чтобы промежуток между ними был уже или даже перекрывался. – NeilDA

ответ

45

установить желаемую ширину переключателя в этом атрибуте ,

андроида: switchMinWidth

как

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

Спасибо, bskania

+1

Эти триммеры левой части переключателя. Любое предложение о том, как добиться симметричного переключения? – user2511882

+0

Да, если вы используете переключатель по умолчанию, то он только обрезает правую часть. Я использовал это решение для пользовательских чертежей коммутатора. – BSKANIA

+6

потратил почти две недели на выяснение решения, всегда старался «setminWidth», что вы спасатель! PS: switchMinWidth = "0dp" - это то, что я использовал. Таким образом, коммутатор масштабируется в соответствии с выдвигаемым решением – Zen

2

Вот мое решение. Я удалил тексты, установил прокладку дорожки и определил propMinWidth. Это мой 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" /> 

Надеюсь, это поможет кому-то.

0

Вы должны использовать android:track вместо android:thumb.

Весь мой код:

<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" /> 
Смежные вопросы