模拟SetOnTouchListener或它在xamarin中的使用方式,必须是什么参数

时间:2013-09-22 16:32:43

标签: android xamarin ontouchlistener

我需要使用SetOnTouchListener:

LinearLayout cardLinearLayout = FindViewById<LinearLayout> (Resource.Layout.CardList);
cardLinearLayout.SetOnTouchListener (this);//Can't use THIS, must be argument  with IOnTouchListener type. Where can I get this argument?

enter image description here

我想将它用于ViewFlipper。也许存在其他方式。

1 个答案:

答案 0 :(得分:9)

在Xamarin.Android中,许多Listener接口已转换为events以获取更多C#类型的代码。

因此,在所有View上都有一个Touch事件,与OnTouchListener中发生的事件相对应。

但是,如果你真的非常想,你可以像这样实现IOnTouchListener界面:

public class MyOnTouchListener : Java.Lang.Object, View.IOnTouchListener
{
    public bool OnTouch(View v, MotionEvent e)
    {
        /* do stuff */
    }
}

然后在您的LinearLayout上使用它,就像这样:

cardLinearLayout.SetOnTouchListener (new MyOnTouchListener());

您可以将其与Touch事件进行比较,该事件只需要一行代码:

cardLinearLayout.Touch += (s, e) => { /* do stuff */ };