将侦听器附加到Mono for Droid中的视图

时间:2012-05-25 15:17:09

标签: view mono listener xamarin.android

希望有人可以提供帮助。

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

Xamarin documentation似乎建议使用c#代理。但这似乎不起作用。任何人都可以帮助进行基本演示,将ontouch监听器连接到视图及其子级。

以下是我尝试过的代码。

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

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

1 个答案:

答案 0 :(得分: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相同