2

希望有人可以提供帮助。

我正在尝试将 OnTouchListener() 附加到视图并且它是子视图。在原生 android 中,这将使用 setOnTouchListener() 方法。

Xamarin 文档似乎建议对 c# 使用委托。但这似乎行不通。任何人都可以帮助进行关于将 ontouch 侦听器附加到视图及其子项的基本演示。

下面是我尝试过的代码。

    myView.Touch += (sender,e)=>
    {
        // Code to be executed
    }

    myView.Click += (sender,e)=>
    {
       // Code to be executed
    }
4

1 回答 1

1

但是,您的样品对我有用;在 android 中,如果子视图处理触摸事件,那么您的父视图不会。因此,通过像上面那样注册触摸事件,如果您触摸任何子控件,则不会发生任何事情,因为子控件正在处理该事件,请参阅Touch Listeners for Parent and Child Views。我看到三种方法来解决这个问题:

  1. 为父母和所有孩子注册代表,(但这似乎是你想要避免的......)
  2. 在您的父视图类中,实现 onInterceptTouchEvent,这意味着您需要一个自定义视图类。http://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent(android.view.MotionEvent)
  3. SetOnTouchListener 在 M4A 中仍然存在,可以在父级和所有子级上使用,效果与选项 1 相同
于 2012-05-28T16:17:35.137 回答