禁用父项时禁用子视图触摸

disable child view touches when parent disabled

提问人:Ayaka_Ago 提问时间:9/28/2023 最后编辑:Ayaka_Ago 更新时间:9/28/2023 访问量:36

问:

我正在创建一个可点击的自定义视图来替换 (),使用而不是附加 .当我以前使用时,如果父视图被禁用,则也无法单击,但是当我迁移到自定义视图时,当父视图被禁用时,它仍然是可单击的。我如何知道我是否应该停用/忽略点击?android.widget.SwitchSwitchonDrawDrawableSwitchSwitch


已启用自定义视图父项custom view parent enabled

自定义视图父已禁用(仍可单击!custom view parent disabled

Switch父已禁用(不可单击)android.widget.Switch parent disabled


我的代码就像...

public class MySwitch extends View {

  public boolean onTouchEvent(MotionEvent motionEvent) {
    if (isClickable() && isEnabled()) {
      //do something
    }
  }

  protected void onDraw(Canvas canvas) {
    //draw track and thumb
  }

}
java android-custom-view touch-event 用户体验

评论


答:

0赞 Alexis Tamariz 9/28/2023 #1

您可以尝试按如下方式验证父项。ViewGroup

public boolean onTouchEvent(MotionEvent motionEvent) {
    ViewGroup parent = (ViewGroup) getParent();
    Log.d(TAG, "onTouchEvent: parent enabled: " + parent.isEnabled());
}