我需要在开关compat中禁用滑动。我正在使用OnclickListener切换开关。我已经为onClickListener实现了一些功能。但是当用户滑动切换时,他没有获得实现的功能。我需要禁用滑动切换compat。
注意:我没有使用onCheckedlistener,因为我在使用onCheckedListener时遇到了一些问题。
<android.support.v7.widget.SwitchCompat android:id="@+id/switchButton" android:layout_width="wrap_content" android:layout_centerInParent="true" android:checked="false" android:scrollbarAlwaysDrawVerticalTrack="true" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Switch example" />
SwitchCompat switchCompat; switchCompat=(SwitchCompat)findViewById(R.id.switchButton); switchCompat.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(getApplicationContext(), "toggled", Toast.LENGTH_SHORT).show(); //added } });
答案 0 :(得分:2)
尝试使用以下代码阻止switch类接收滑动事件:
switchBtn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return event.getActionMasked() == MotionEvent.ACTION_MOVE;
}
});
这可能会阻止开关接收滑动
答案 1 :(得分:1)
使用TouchListener
switchButton.setOnTouchListener(object : View.OnTouchListener {
override fun onTouch(p0: View, p1: MotionEvent): Boolean {
when (p1.action) {
MotionEvent.ACTION_DOWN -> {
return false
}
MotionEvent.ACTION_UP -> {
return false
}
MotionEvent.ACTION_MOVE -> {
return true
}
else -> {
return true
}
}
}
})
现在你无法轻扫开关