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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章