public void OnPageScrollStateChanged(int state) { CalendarViewPager pager = null; if (_weakPager.TryGetTarget(out pager)) { pager.IsDragging = state == 1; } }
public override Java.Lang.Object InstantiateItem(ViewGroup container, int position) { CalendarViewPager pager = null; if (_weakPager.TryGetTarget(out pager)) { var color = Android.Graphics.Color.Red; if (position == 1) { color = Android.Graphics.Color.Blue; } else if (position == 2) { color = Android.Graphics.Color.Gold; } View view; switch (position) { case 0: { view = pager.Item0; break; } case 1: { view = pager.Item1; break; } default: { view = pager.Item2; break; } } container.RemoveView(view); container.AddView(view); return(view); } return(null); }
public void OnPageScrolled(int position, float positionOffset, int positionOffsetPixels) { CalendarViewPager pager = null; if (_weakPager.TryGetTarget(out pager)) { var shouldUpdate = false; if (pager.ScrollX == 0 && !_isInitialized) { _isInitialized = true; pager.SetCurrentItem(1, false); pager.ScrollX = pager.Width; shouldUpdate = true; } if (pager.IsDragging) { if (pager.ScrollX > pager.Width && pager.ScrollX > _previousScrollX) { pager.SetMonth(pager.NextMonth); pager.ScrollX = pager.ScrollX - pager.Width; // right shouldUpdate = true; } else if (pager.ScrollX < pager.Width && pager.ScrollX < _previousScrollX) { pager.SetMonth(pager.PreviousMonth); pager.ScrollX = pager.ScrollX + pager.Width; // left shouldUpdate = true; } } _previousScrollX = pager.ScrollX; if (shouldUpdate) { pager.Item0.Invalidate(); pager.Item1.Invalidate(); pager.Item2.Invalidate(); } } }
public OnPageChangeListener(CalendarViewPager pager) { _weakPager = new WeakReference <CalendarViewPager>(pager); }
public CalendarPageAdapter(CalendarViewPager pager) { _weakPager = new WeakReference <CalendarViewPager>(pager); }