public class MNestedScrollView extends NestedScrollView {
private float xDistance, yDistance, xLast, yLast;
public MNestedScrollView(@NonNull Context context) {
super(context);
}
public MNestedScrollView(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public MNestedScrollView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
xDistance = yDistance = 0f;
xLast = ev.getX();
yLast = ev.getY();
break;
case MotionEvent.ACTION_MOVE:
final float curX = ev.getX();
final float curY = ev.getY();
xDistance += Math.abs(curX - xLast);
yDistance += Math.abs(curY - yLast);
xLast = curX;
yLast = curY;
if (xDistance > yDistance) {
// 返回true,表示当前控件要拦截事件,紧接着事件交给当前控件的onTouchEvent方法来处理。
// 返回默认/false,表示不拦截事件,事件最终继续往下分发。
return false;
}
}
return super.onInterceptTouchEvent(ev);
}
}
自定义NestedScrollView解决包裹ViewPager2滑动冲突问题。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- iOS实际开发过程中有时会遇到自定义的滑杆不灵敏或者卡顿问题,造成原因是什么呢?1、组件本身问题 1)、首先确认是...
- 一、背景 最近在一个springmvc+mtbatis项目中配置自定义拦截器时发现了一些问题,主要就是由<mvc:...
- 有这样一个需求:RecyclerView嵌套WebView时,当WebView显示宽度超出手机屏幕宽度时,需要用手...
- scrollview里面嵌套了edittext,当输入文字行数过多,超出edittext高度需要滑动才能查看时,发...
- 在OC开发中,导航控制器是一个非常常见的控件,而且在不少使用时候,我们需要自定义导航条NavigationBar...