Example #1
0
 public void LinkTo(LinkedScrollView lsv)
 {
     if (lsv != null)
     {
         Links.Add(lsv);
         lsv.Links.Add(this);
         Post(() =>
         {
             ScrollTo(lsv.ScrollX, lsv.ScrollY);
         });
     }
 }
Example #2
0
        public HourView(Context context, int startHour, int endHour)
            : base(context, startHour, endHour)
        {
            ScrollView = new HourScrollView(context, this);
            if (Build.VERSION.SdkInt >= BuildVersionCodes.GingerbreadMr1)
            {
                ScrollView.OverScrollMode = OverScrollMode.Never;
            }
            AddView(ScrollView);

            MainLayout             = new LinearLayout(context);
            MainLayout.Orientation = Orientation.Vertical;
            ScrollView.AddView(MainLayout);

            HourHeightListeners = new List <TimeLayout>();
        }
Example #3
0
        protected override void Update()
        {
            RemoveAllViews();

            dtView = new DateTitleView(Context, Day);
            AddView(dtView);

            var dayEvents = Timetable.GetEvents(Day, day => {}, (day, events) => Update(), e =>
            {
                errorUpdating = e;
                Console.WriteLine(e);
                Update();
            });

            if (errorUpdating != null && !dayEvents.Any())
            {
                TextView errorText = new TextView(Context);
                errorText.Text = "Er is een fout opgetreden:\n\n"
                                 + errorUpdating.ToShortString() + "\n\n"
                                 + "Raak deze tekst aan om het opnieuw te proberen.";
                errorText.Gravity          = GravityFlags.Center;
                errorText.LayoutParameters = new LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent);
                int padding = Utils.DpToPx(40);
                errorText.SetPadding(padding, 0, padding, 0);
                errorText.Clickable = true;
                errorText.Click    += (sender, e) =>
                {
                    errorUpdating = null;
                    Update();
                };
                AddView(errorText);
            }
            else
            {
                if (Timetable.UpdatesInProgress.Contains(Day.Week))
                {
                    AddView(new LoadingView(Context));
                }
                else
                {
                    if (dayScrollView != null)
                    {
                        dayScrollView.Unlink();
                    }
                    dayScrollView = new LinkedScrollView(Context);
                    dayScrollView.LinkTo(HourView.ScrollView);
                    dayScrollView.VerticalScrollBarEnabled = showScroll;
                    if (Build.VERSION.SdkInt >= BuildVersionCodes.GingerbreadMr1)
                    {
                        dayScrollView.OverScrollMode = OverScrollMode.Never;
                    }
                    AddView(dayScrollView);

                    RelativeLayout layout = MakeLayout(dayEvents, StartHour);
                    layout.SetPadding(0, HourHeight / 2, 0, 0);
                    int numHours = HourView.EndHour - HourView.StartHour + 1;
                    layout.LayoutParameters.Width  = LayoutParams.MatchParent;
                    layout.LayoutParameters.Height = numHours * HourView.HourHeight;
                    //layout.SetMinimumHeight(numHours * HourView.HourHeight);
                    //Console.WriteLine("MinHeight: " + numHours * HourView.HourHeight);
                    dayScrollView.AddView(layout);
                }
            }
        }
Example #4
0
 private void ScrollTo(int x, int y, LinkedScrollView origin)
 {
     ScrollOrigin.Add(origin);
     base.ScrollTo(x, y);
 }
Example #5
0
 public void Unlink(LinkedScrollView lsv)
 {
     Links.Remove(lsv);
     lsv.Links.Remove(this);
 }