Monodroid:在xml中使用扩展视图类

时间:2013-01-10 13:44:56

标签: android xml xamarin.android

我有一个扩展Horizo​​ntalScrollView的类。但我不知道如何在xml中使用它。如果我使用我的classname作为xml标记,我得到一个错误:错误膨胀类MyClass

我的代码:

public class ToothScroller : HorizontalScrollView
{

    private GestureDetector mGestureDetector;

    public ToothScroller(Context context) : base(context)
    {
    }

    public ToothScroller(Context context, IAttributeSet attrs) : base(context, attrs)
    {

        SetFadingEdgeLength(0);
    }

    public ToothScroller(Context context, IAttributeSet attrs, int defStyle) : base(context, attrs, defStyle)
    {
    }

    public ToothScroller(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
    {
    }


    public override bool OnInterceptTouchEvent (Android.Views.MotionEvent ev)
    {
        Console.WriteLine(this.ScrollX);

        return base.OnInterceptTouchEvent (ev);
    }

}

我的xml(axml)代码:

    <MyClass
        android:id="@+id/scrollMyClass"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/imageSomething"
        android:fillViewport="true"
        android:background="@drawable/pusherbg">
        <RelativeLayout
            android:id="@+id/layoutSomething"
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
    </MyClass>

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

替换此

 <MyClass
    android:id="@+id/scrollMyClass"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/imageSomething"
    android:fillViewport="true"
    android:background="@drawable/pusherbg"> 

  <YourPackage.YourClass
    android:id="@+id/scrollMyClass"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/imageSomething"
    android:fillViewport="true"
    android:background="@drawable/pusherbg">

答案 1 :(得分:1)

将布局xml更改为:

<com.username.package.MyClass
    android:id="@+id/scrollMyClass"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/imageSomething"
    android:fillViewport="true"
    android:background="@drawable/pusherbg">
    <RelativeLayout
        android:id="@+id/layoutSomething"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
</com.username.package.MyClass>

这是一个很好的资源,其中包含更多详细信息,Google可能会提供有关如何创建自定义视图的更多信息:http://developer.android.com/guide/topics/ui/custom-components.html

答案 2 :(得分:0)

感谢您的帮助,现在可以使用以下代码。 Packagename有点令人困惑,因为在我使用的Monodroid中,它是我必须使用的命名空间,而不是包名。

<MyNamespace.MyClass
    android:id="@+id/scrollMyClass"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/imageSomething"
    android:fillViewport="true"
    android:background="@drawable/pusherbg">
    <RelativeLayout
        android:id="@+id/layoutSomething"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
</MyNamespace.MyClass>