SwitchButton 是一个开源 switch开关控件;在android studio build.gradel引入插件即可
在xml中布局的每个属性的意义如下:
kswThumbWidth:设置开关按钮的宽
kswThumbHeight:设置开关按钮的高
kswThumbMargin:设置开关与背景之间的编辑
kswThumbMarginLeft 、kswThumbMarginRight、kswThumbMarginButtom、kswThumbMarginTop 略
kswThumbRadius:设置开关按钮的圆角半径
kswThumbDrawable:用一张图片作为开关按钮 (设置了按钮无切换效果)
kswThumbColor:设置开关按钮的颜色 (设置了按钮无切换效果)
kswBackRadius:设置开关背景的圆角半径
kswBackColor:设置开关 背景颜色(设置了 无开关效果)ps:没设置的话就没有为透明
kswFadeBack:是否开起切换的渐变效果
kswBackMeasureRatio:设置开关背景的长度(可滑动区间的长度),他是比率,比率越大,越长
kswTintColor:设置开关 打开后 背景及按钮的颜色
ps:如果只设置了kswBackColor而没设置kswTintColor开关的切换只有按钮有切换效果,背景没有
kswAnimationDuration:开关动画的持续时间
kswTextOn:打开状态的文字
kswTextOff:关闭状态的文字
kswTextMarginH:打开或关闭文字 距离相应一边的距离(eg:打开状态的文字距离)
android:checked="true" 置为打开状态 //可以看出 switchBotton实现了android Checkable接口
在代码中控件设置打开或关闭状态以及回调监听如下:
setCheckedImmediately() 作用与setChecked()一致但是无动画效果
toggle()与toggleImmediately() 是切换当前状态(比如 当前打开,调用此方法则变为关闭状态)两者存在有无动画效果区分
切换的回调监听
setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
}
});
1.4.1版本后存在切换后 无事件处理
etCheckedNoEvent(boolean)
setCheckedImmediatelyNoEvent(boolean)
toggleNoEvent()
toggleImmediatelyNoEvent()