在XML中自定义scrollview上的类膨胀错误?

时间:2014-10-19 21:19:10

标签: android xml xamarin xamarin.android scrollview

我有一个使用Mono Droid构建的应用程序。我正在尝试制作无尽的滚动视图,以便我的用户可以滚动到底部并加载更多项目。这是我正在使用的课程

public class EndlessScroll : ScrollView
{ 
    public EndlessScroll (Context context) : base (context)
    {}

    public EndlessScroll(Context context, IAttributeSet attrs) : base(context, attrs)
    {}

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

    public interface OnScrollViewListener
    {
        void onScrollChanged(EndlessScroll v, int l, int t, int oldl, int oldt);
    }

    public  OnScrollViewListener mOnScrollViewListener;

    public void setOnScrollViewListener(OnScrollViewListener l) 
    {
        this.mOnScrollViewListener = l;
    }

    protected void onScrollChanged(int l, int t, int oldl, int oldt)
    {
        mOnScrollViewListener.onScrollChanged(this, l, t, oldl, oldt);
        base.OnScrollChanged(l, t, oldl, oldt);
    }
}

这是我的xml文件。我从Java转换了所有这些代码,所以可能有些东西我做错了。

 <com.BirdsIView.BirdsIView.EndlessScroll
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="90"
    android:id="@+id/scrollView">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/viewDebug" />
</com.BirdsIView.BirdsIView.EndlessScroll>

这是我的错误日志

Android.Views.InflateException: Binary XML file line #1: Error inflating class com.BirdsIView.BirdsIView.EndlessScroll


at at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () <IL 0x00011, 0x00068>

在/Users/builder/data/lanes/monodroid-mlion-monodroid-4.18-series/中的Android.Runtime.JNIE nv.CallNonvirtualVoidMethod(intptr,intptr,intptr,Android.Runtime.JValue [])[0x00084] 3b7ef0a7 /源极/ MonoDroid的/ SRC / Mono.Android / SRC /运行时间/ JNIEnv.g.cs:896

at BirdsIView.getFromParse.OnCreate(Android.OS.Bundle)[0x00016]在c:\ Users \ New User \ Desktop \ BirdsIView \ BirdsIView \ BirdsIView \ getFromParse.cs:40   在/Users/builder/data/lanes/monodroid-mlion-monodroid-4.18-series/3b7ef0a7/source/monodroid/src/Mono.Android/中的Android.App.Activity.n_OnCreate_Landroid_os_Bundle_(intptr,intptr,intptr)[0x00011]平台/机器人-19 / SRC /生成/ Android.App.Activity.cs:2179   at at(wrapper dynamic-method)object.06c20e74-6eec-438c-a399-394abf9bcd74(intptr,intptr,intptr)   at ---托管异常堆栈跟踪结束---   在android.view.InflateException:二进制XML文件行#1:错误膨胀类com.BirdsIView.BirdsIView.EndlessScroll

at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)

2 个答案:

答案 0 :(得分:1)

我让这个工作。显然你需要像这样命名xml

<BirdsIView.EndlessScroll

而不是

<com.BirdsIView.BirdsIView.EndlessScroll

答案 1 :(得分:-1)

只需简单地更改这些功能

 public EndlessScroll (Context context) 
    {
       super(context);
        init();
    }

    public EndlessScroll(Context context, AttributeSet attrs) 
    {

        super(context, attrs);
        init();

    }

    public EndlessScroll(Context context, AttributeSet attrs, int defStyle) 
    {
         super(context, attrs, defStyle);
        init();
    }