Xamarin Android.
我已经从其他线程中搜索并尝试了许多答案,但不能让它工作。
我一直在尝试使用RequestDisallowInterceptTouchEvent(true);阻止我的父ScrollView吸收触摸事件,并允许在嵌套在它里面但不成功的MapView上平移。
这是我所做的到目前为止在我的地图客户渲染器Android
private IViewParent _scrolLView;
private IViewParent GetParentScrollView(IViewParent parent)
{
if (parent is ScrollViewRenderer)
return parent;
return GetParentScrollView(parent.Parent);
}
public override bool DispatchTouchEvent(MotionEvent e)
{
GetParentScrollView(Parent).RequestDisallowInterceptTouchEvent(true);
return base.DispatchTouchEvent(e);
}
但是当我尝试在地图上锅,滚动视图仍然拦截和卷轴。
RequestDisallowInterceptTouchEvent当子进程不希望父进程和其父进程拦截触摸事件时调用。
尝试将GetParentScrollView(Parent)
更改为this
,它在我这边工作。
public override bool DispatchTouchEvent(MotionEvent e)
{
this.RequestDisallowInterceptTouchEvent(true);
return base.DispatchTouchEvent(e);
}
可以添加InputTransparent="True"在xaml的scrollview属性中。它是有效的