Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法重写xamarin.android中的OnInterceptTouchEvent方法_Xamarin_Xamarin.android - Fatal编程技术网

无法重写xamarin.android中的OnInterceptTouchEvent方法

无法重写xamarin.android中的OnInterceptTouchEvent方法,xamarin,xamarin.android,Xamarin,Xamarin.android,我想重写OnInterceptTouchEvent方法。我正在使用listview并试图在其上实现手势检测器,但当我在子视图上应用click listeners时,fling方法返回null。我发现这个方法可以解决我的问题,但我无法在活动中重写 @Override public boolean onInterceptTouchEvent(MotionEvent motionEvent) { return true; } 如果有任何其他方法可以解决这个问题,请告诉我。当

我想重写OnInterceptTouchEvent方法。我正在使用listview并试图在其上实现手势检测器,但当我在子视图上应用click listeners时,fling方法返回null。我发现这个方法可以解决我的问题,但我无法在活动中重写

@Override
    public boolean onInterceptTouchEvent(MotionEvent motionEvent) {

        return true;
}

如果有任何其他方法可以解决这个问题,请告诉我。

当您应该使用C#等价物时,您正在尝试用Java方式覆盖它

此外,Intercept touch事件是ViewGroup层次结构的一部分,因此在活动中不可用

@Override
    public boolean onInterceptTouchEvent(MotionEvent motionEvent) {

        return true;
}
视图组基本上是一个类,它像视图持有者一样将一组小部件放在一起

尝试在自定义ListView中粘贴以下内容,然后将该ListView用作实现手势检测器的工具

public override bool OnInterceptTouchEvent(MotionEvent ev)
{
  return base.OnInterceptTouchEvent(ev);
}

活动不是视图类,因此没有
OnInterceptTouchEvent
方法,
OnInterceptTouchEvent
是ViewGroup类的一个函数,用于拦截触摸事件

因此,您可以自定义ListView,然后覆盖
OnInterceptTouchEvent
方法,如下所示:

class MyListView : ListView
{
    public MyListView(Context context) : base(context)
    {
    }

    public MyListView(Context context, IAttributeSet attrs) : base(context, attrs)
    {
    }

    public MyListView(Context context, IAttributeSet attrs, int defStyleAttr, int defStyleRes) : base(context, attrs, defStyleAttr, defStyleRes)
    {
    }

    public override bool OnInterceptTouchEvent(MotionEvent e)
    {
        return base.OnInterceptTouchEvent(e);
    }


}

你能检查一下我的答案,看看对你是否有效吗