如何在Android的Xamarin .axml中应用自定义视图

时间:2014-09-03 19:29:46

标签: android xamarin scrollview

我一直致力于在我的Xamarin应用中实现淡入淡出的操作栏和视差滚动到我的Android用户界面。我需要扩展我的ScrollView,现在它被称为NotifyingScrollView。我现在如何设计我的.axml样式。我不能在我的axml中编写NotifyingScrollView,

namespace NightOut.UiComponents
{
class NotifyingScrollView : ScrollView
{
    public interface IOnScrollChangedListener
    {
        void OnScrollChanged(ScrollView who, int l, int t, int oldl, int oldt);
    }

    private IOnScrollChangedListener mOnScrollChangedListener { get; set; }


    public NotifyingScrollView(Context context) : base(context)
    {

    }

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

    }

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

    }


    [Android.Runtime.Register("onScrollChanged", "(IIII)V", "GetOnScrollChanged_IIIIHandler")]
    protected override void OnScrollChanged(int l, int t, int oldl, int oldt)
    {
        base.OnScrollChanged(l, t, oldl, oldt);
        if (mOnScrollChangedListener != null)
        {
            mOnScrollChangedListener.OnScrollChanged(this, l, t, oldl, oldt);
        }
    }

}
}

1 个答案:

答案 0 :(得分:7)

通用示例:

namespace My.Namespace
{
    class MyCustomView : View
    {
    }
}

在.axml中以下列方式使用

<my.namespace.MyCustomView />

或者在您的具体示例中:

<nightout.uicomponents.NotifyingScrollView />

请注意,.axml中的命名空间是小写的,classname与C#声明的情况相同。