Esempio n. 1
0
            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);
        }
Esempio n. 3
0
            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();
                    }
                }
            }
Esempio n. 4
0
 public OnPageChangeListener(CalendarViewPager pager)
 {
     _weakPager = new WeakReference <CalendarViewPager>(pager);
 }
 public CalendarPageAdapter(CalendarViewPager pager)
 {
     _weakPager = new WeakReference <CalendarViewPager>(pager);
 }