Android的switch上下拖动父布局NestedScrollView禁止拖动
时间: 2023-09-01 13:06:22 浏览: 107
可以在`onTouch`方法中判断触摸事件是否在`switch`上,如果是则禁止`NestedScrollView`的滑动。
具体实现如下:
```java
// 获取 NestedScrollView
NestedScrollView scrollView = findViewById(R.id.scroll_view);
// 获取 Switch
Switch switchButton = findViewById(R.id.switch_button);
// 设置触摸事件监听
scrollView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// 判断触摸事件是否在 Switch 上
if (event.getAction() == MotionEvent.ACTION_MOVE && switchButton.getHitRect(new Rect())) {
// 在 Switch 上,禁止 NestedScrollView 滑动
return true;
}
// 其他情况不做处理,交由 NestedScrollView 处理
return false;
}
});
```
在这个代码中,我们首先获取了`NestedScrollView`和`Switch`,然后设置了`onTouch`监听器。在`onTouch`方法中,我们判断了触摸事件是否在`Switch`上,如果是则返回`true`,表示该事件已经被处理,不再交由`NestedScrollView`处理。如果不是,则返回`false`,表示该事件交由`NestedScrollView`处理。
阅读全文