사용자가 스크롤 할 때까지 OnScrollChanged 메서드를 재정의해야합니다.
protected override void OnScrollChanged(int l, int t, int oldl, int oldt)
이벤트가 수신 및 처리, 그러나 우리는 우리의 클래스에 공공 이벤트 핸들러 속성을 추가 할 수있는 자 마린과 일치하기 위해 수 있도록 여러 가지 방법이 있습니다.
public EventHandler<T> ScrollEventHandler { get; set; }
우리는 우리의 생성자의 각 우리의 핸들러를 초기화하는 것을 잊지 마십시오 핸들러에 OnScrollChanged에서 값을 따라 전달하려면, 그래서 EventArgs입니다 마지막으로
public class UsefulScrollEventArgs : EventArgs{
public int l { get; set; }
public int t { get; set; }
public int oldl { get; set; }
public int oldt { get; set; }
}
을 확장 할 것
ScrollEventHandler = (object sender, UsefulScrollEventArgs e) => {};
함께 넣으면 다음과 같이 보일 수 있습니다.
확장있는 EventArgs 클래스
public class UsefulScrollEventArgs : EventArgs{
public int l { get; set; }
public int t { get; set; }
public int oldl { get; set; }
public int oldt { get; set; }
}
확장있는 ScrollView 클래스
public class UsefulScrollView : ScrollView
{
public EventHandler<UsefulScrollEventArgs> ScrollEventHandler { get; set; }
public UsefulScrollView (Context context)
: base(context)
{
ScrollEventHandler = (object sender, UsefulScrollEventArgs e) => {};
}
public UsefulScrollView (Context context, IAttributeSet attrs)
: base(context, attrs) {
ScrollEventHandler = (object sender, UsefulScrollEventArgs e) => {};
}
public UsefulScrollView(Context context, IAttributeSet attrs, int defStyle)
: base(context, attrs, defStyle) {
ScrollEventHandler = (object sender, UsefulScrollEventArgs e) => {};
}
protected override void OnScrollChanged(int l, int t, int oldl, int oldt)
{
ScrollEventHandler (this,
new UsefulScrollEventArgs()
{l=l,t=t,oldl=oldl,oldt=oldt});
base.OnScrollChanged (l, t, oldl, oldt);
}
protected override void OnDraw(Android.Graphics.Canvas canvas)
{
}
}
이 Q & A는이 문제를 파악하는데 도움이되었다 : 내가있는 ScrollView를 확장하지만 EventHandlers을 사용 Scrollview listener is not working in Xamarin for Android?