我的WebView
中有一个RecyclerView
,WebView
加载了一个html页面。页面的一部分可以水平滚动,但是当我横向滚动时,RecyclerView
可以轻松地触摸触摸事件并开始垂直滚动。
我该如何解决这个问题?
答案 0 :(得分:0)
最后,我已经找到了关于我的问题的解决方案。 WebView
的部分位于视图的顶部。所以我用它来拦截触摸事件:
float touchSlop = ViewConfiguration.get(getContext()).getScaledTouchSlop()
webView.setOnTouchListener((View v, MotionEvent event) -> {
if (!scrollFlag && event.getY() < getHeight() / 2) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
downX = event.getX();
downY = event.getY();
break;
case MotionEvent.ACTION_MOVE:
if (Math.abs(event.getY() - downY) < touchSlop && Math.abs(event.getX() - downX) > touchSlop) {
getParent().requestDisallowInterceptTouchEvent(true);
scrollFlag = true;
}
break;
}
}
if (event.getAction() == MotionEvent.ACTION_UP)
scrollFlag = false;
return false;
});