如何禁用switch compat中的滑动?
How to disable swipe in switch compat?
我需要禁用滑动开关 compat.I 我正在使用 OnclickListener 来切换 switch.I 已经为 onClickListener.But 实现了一些功能,当用户滑动开关时他没有得到实现functionality.I 需要禁用滑动以实现开关兼容性。
注意:我没有使用 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
}
});
尝试使用以下代码阻止开关 class 接收滑动事件:
switchBtn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return event.getActionMasked() == MotionEvent.ACTION_MOVE;
}
});
这可能会阻止开关接收滑动
使用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
}
}
}
})
现在不能滑动开关了
我需要禁用滑动开关 compat.I 我正在使用 OnclickListener 来切换 switch.I 已经为 onClickListener.But 实现了一些功能,当用户滑动开关时他没有得到实现functionality.I 需要禁用滑动以实现开关兼容性。
注意:我没有使用 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 } });
尝试使用以下代码阻止开关 class 接收滑动事件:
switchBtn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return event.getActionMasked() == MotionEvent.ACTION_MOVE;
}
});
这可能会阻止开关接收滑动
使用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
}
}
}
})
现在不能滑动开关了