我正在创建一个可点击的自定义视图来替换
android.widget.Switch
(Switch
),使用 onDraw
而不是额外的 Drawable
。当我以前使用 Switch
时,如果禁用了父项,则 Switch
也不可单击,但是当我迁移到自定义视图时,当父项禁用时它仍然是可单击的。我如何知道是否应该禁用/忽略点击?
Switch
父级已禁用(不可点击)
我的代码就像...
public class MySwitch extends View {
public boolean onTouchEvent(MotionEvent motionEvent) {
if (isClickable() && isEnabled()) {
//do something
}
}
protected void onDraw(Canvas canvas) {
//draw track and thumb
}
}
您可以尝试将父级验证为
ViewGroup
,如下所示。
public boolean onTouchEvent(MotionEvent motionEvent) {
ViewGroup parent = (ViewGroup) getParent();
Log.d(TAG, "onTouchEvent: parent enabled: " + parent.isEnabled());
}