Android原生开关组件

Android原生Switch

众所周知,Android原生提供了两种开关组件,toggleButton和Switch,这两个因为仿苹果的原因我很少使用。真正用到项目里大概也就两次,体验并不好,最近被UI说就用你们Android原生的就可以了,给我贴了个图,我心说这哪好看去,结果意外查到了一篇帖子,说如何定制成仿照苹果的样子。
使用了一下效果不错,但问题来了,我一直不愿意使用这两个,主要原因还是宽高不好控制和掌握,在定制的的时候多方测试,结果意外地解决了这个问题
记录如下

Switch的参数:
android:showText:设置on/off的时候是否显示文字,boolean (>API21)
android:splitTrack:是否设置一个间隙,让滑块与底部图片分隔,boolean (>API21)
android:switchMinWidth:设置开关的最小宽度
android:switchPadding:设置开关与文字的空白距离
android:switchTextAppearance:设置文字的风格,暂时没发现有什么用…
typeface:设置字体类型
android:track:控件开关的轨迹图片,android:state_checked,注意shape的宽度设置不管用,高度在30dp比较好,角度20就足够了
android:thumb:控件开关的图片,设置一个drawable包含两个shape,android:state_checked
android:textOff:按钮没有被选中时显示的文字
android:textOn:按钮被选中时显示的文字
checked:设置初始选中状态

其中调节背景所需要的是:背景track和按钮thumb,组件宽度主要由android:thumb决定,shape的大小决定了组件的高度,宽度决定了组件的宽度,shape宽度*2 = switch的实际宽度

Togglebutton则需要设置
android:button="@drawable/switch_thumb" // 按钮
android:background="@drawable/switch_track" //背景
并且需要注意,使用同一对thumb和track时,toggleButton显示效果比Switch要大,button的Shape宽度对toggleButton的宽度生效,但是高度默认大概是52dp,高度只能通过组件属性layout_height控制
在需要单独调节宽高时使用toggleButton,在button大小统一时使用switch
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章