我对这个小问题感到很疯狂。我有一个'切换'表单小部件,但无论我尝试多少,我都不能让它更窄。即使我有一个字符而不是'ON'或'OFF',开关的大小也保持不变。 '拇指'变小,但必须拖动与之前相同的距离。将'layout_width'更改为较小的值只会切断剩余的轨道。 'minWidth'似乎什么也没做。
有谁知道我怎么做到这一点?理想情况下,我只想要一个空拇指,我会用拇指颜色代码知道哪个是哪个。
XML代码:
<Switch android:id="@+id/switch3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Switch" android:textOff=" " android:textOn=" " />
我开始说:
但我想要这样的事情:
答案 0 :(得分:53)
在此属性中设置所需的开关宽度。
机器人: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 :(得分:2)
这是我的解决方案。我删除了文本,设置了轨道的填充并定义了switchMinWidth道具。这是我的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" />
希望它对某人有帮助。
答案 2 :(得分:0)
正在使用androidx.appcompat.widget.SwitchCompat
的人需要使用
app:switchMinWidth
示例:
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:switchMinWidth="50dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
app:track="@drawable/custom_track"
android:thumb="@drawable/custom_thumb"
/>
答案 3 :(得分:-1)
您应该使用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" />