NestedScrollView上下拖动事件和地图上下拖动冲突。
问题:在 fragment 中用 NestedScrollView 包裹了 MapView和RecyclerView ,上下布局,之前遇到过地图横向滑动冲突ViewPager,重新viewpager解决了。现在遇到了垂直滑动冲突,NestedScrollView上下拖动事件和地图上下拖动冲突。查了文章是事件分发问题。

<androidx.core.widget.NestedScrollView >
<RelativeLayout>
<com.amap.api.maps.MapView/>
<androidx.recyclerview.widget.RecyclerView />
</RelativeLayout>
</androidx.core.widget.NestedScrollView>
尝试方法:
第一,思路
监听地图触摸事件setOnMapTouchListener,判断如果地图被触摸,然后会先到父控件NestedScrollView,给它传ACTION_DOWN,不让它拦截这个事件,然后再返回给子控件地图。
第二,方法
一种是用了NestedScrollView.onInterceptTouchEvent(ev)
一种是用了NestedScrollView.requestDisallowInterceptTouchEvent(false);
但是都没有效果。
不明白应该怎么做,谢谢大神了。
aMap.setOnMapTouchListener(new AMap.OnMapTouchListener() {
@Override
public void onTouch(MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
LogUtils.d(TAG,"---地图 被点击了 true----------------");
ev.setAction(MotionEvent.ACTION_DOWN);
//mNestedScrollView.onInterceptTouchEvent(ev); 给NestedScrollView传ACTION_DOWN,但是没有作用。就尝试用下面的方法。
mNestedScrollView.requestDisallowInterceptTouchEvent(false); //结果也没用
} else {
mNestedScrollView.requestDisallowInterceptTouchEvent(true);
}
}
});
要么就是我们理解的UI效果不一样。如果你只是为了弹出一个可以滑动的RecyclerView,为什么要使用NestedScrollView呢?用一个PopupWindow不就可以了嘛。你不是做过喜马拉雅吗?喜马拉雅的播放列表,是你想要的效果吧。
你怎么使用RelativeLayout呢?那不就重叠了吗?重叠以后,你使用NestedScrollView有何意义呢?