不能覆盖xamarin.android OnInterceptTouchEvent方法

问题描述 投票:0回答:2

我想重写OnInterceptTouchEvent方法。我使用的ListView和想要实现它的姿态detecor但我[应用荷点击子视图听众等一扔方法返回null。我想通了,这种方法可以解决我的问题,但我无法在我的活动覆盖。

@Override
    public boolean onInterceptTouchEvent(MotionEvent motionEvent) {

        return true;
}

如果存在任何其他的方法来解决这个问题,请让我知道。

xamarin xamarin.android
2个回答
1
投票

酶活性不是视图类,所以没有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);
    }


}

0
投票

您正在试图重写它时,你应该使用C#相当于Java的方式。

另外,拦截触摸事件是一个ViewGroup层次结构的一部分,并在您的活动,因此无法使用。

一个ViewGroup中基本上是持有一串窗口小部件在一起,就像一个浏览持有者类。

尝试粘贴下面您的自定义的ListView,然后使用该ListView的为您实现一个姿态探测器

public override bool OnInterceptTouchEvent(MotionEvent ev)
{
  return base.OnInterceptTouchEvent(ev);
}
© www.soinside.com 2019 - 2024. All rights reserved.