我正在构建一个使用此处找到的定制 TwoDScrollView 的 Android 应用程序:
http://blog.gorges.us/2010/06/android-two-dimensional-scrollview/
可以在其他几个网站上找到相同的类,并且 Stack Overflow 上的其他人也提出了有关它的问题。我在使用 Java/Eclipse 构建的以前的 Android 应用程序中使用它,并且取得了成功。
在我当前的应用程序中,我想使用 C# 和 MonoDroid。我决定用 C# 重写整个 TwoDScrollView 类。重写它,然后在一些布局 XML 中使用它之后,尝试运行我的代码时出现以下异常:
System.NotSupportedException 已被抛出。无法从本机句柄 44f4d310 激活 MyProject.TwoDScrollView 类型的实例。
System.Exception:未找到 MyProject.TwoDScrollView::.ctor(System.IntPtr, Android.Runtime.JniHandleOwnership) 的构造函数......后面还有更多文本......
我的布局 XML 如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<myproject.TwoDScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</myproject.TwoDScrollView>
</RelativeLayout>
根据以下链接中有关在 MonoDroid 中使用布局 XML 中的自定义视图的说明:http: //docs.xamarin.com/android/advanced_topics/using_custom_views_in_a_layout
TwoDScrollView 类的构造函数如下所示:
public TwoDScrollView(Context context)
: base(context)
{
initTwoDScrollView();
}
public TwoDScrollView(Context context, IAttributeSet attrs)
: base(context, attrs)
{
initTwoDScrollView();
}
public TwoDScrollView(Context context, IAttributeSet attrs, int defStyle)
: base(context, attrs, defStyle)
{
initTwoDScrollView();
}
C# 版本中存在与 Java 版本中相同的构造函数(您可以在上面的链接中找到)。知道可能出了什么问题吗?如果有人愿意,我可以发布我的 TwoDScrollView 的完整 C# 代码。它本质上与 Java 代码逐位相同——除了用 C# 重写。
谢谢你的帮助!