示例#1
0
        public StatusesPage(int position = 0) : base()
        {
            InitializeComponent();
            Xamarin.Forms.PlatformConfiguration.iOSSpecific.Page.SetUseSafeArea(this, true);
            BindingContext = new StatusesViewModel(position);

            var cancel = new ToolbarItem
            {
                Text    = "添加",
                Command = new Command(async() =>
                {
                    if (UserTokenSettings.Current.HasExpiresIn())
                    {
                        MessagingService.Current.SendMessage(MessageKeys.NavigateLogin);
                    }
                    else
                    {
                        await NavigationService.PushAsync(Navigation, new StatusesEditPage(new Statuses(), new Action <Statuses>(OnResult)));
                    }
                })
            };

            ToolbarItems.Add(cancel);

            if (Device.Android == Device.RuntimePlatform)
            {
                cancel.Icon = "toolbar_add.png";
            }

            this.StatusesListView.ItemSelected += async delegate
            {
                var statuses = StatusesListView.SelectedItem as Statuses;
                if (statuses == null)
                {
                    return;
                }

                var statusesDetails = new StatusesDetailsPage(statuses);
                if (statuses.Id > 0)
                {
                    await NavigationService.PushAsync(Navigation, statusesDetails);
                }
                this.StatusesListView.SelectedItem = null;
            };
            ViewModel.GetClientStatusesAsync();
        }
示例#2
0
        protected override void OnAppearing()
        {
            base.OnAppearing();

            if (!hasInitialization)
            {
                BindingContext = new StatusesViewModel(position);

                var cancel = new ToolbarItem {
                    Text    = "添加",
                    Command = new Command(async() => {
                        if (UserTokenSettings.Current.HasExpiresIn())
                        {
                            MessagingService.Current.SendMessage(MessageKeys.NavigateLogin);
                        }
                        else
                        {
                            await NavigationService.PushAsync(Navigation, new StatusesEditPage(new Statuses(), new Action <Statuses>(OnResult)));
                        }
                    }),
                    Icon = "toolbar_add.png"
                };
                ToolbarItems.Add(cancel);

                this.StatusesListView.HasFloatingView = true;
                this.StatusesListView.ItemSelected   += async delegate {
                    var statuses = StatusesListView.SelectedItem as Statuses;
                    this.StatusesListView.SelectedItem = null;
                    if (statuses == null)
                    {
                        return;
                    }

                    var statusesDetails = new StatusesDetailsPage(statuses);
                    if (statuses.Id > 0)
                    {
                        await NavigationService.PushAsync(Navigation, statusesDetails);
                    }
                };

                var floatingView = new FloatingView();

                this.StatusesListView.FloatingChanged += delegate(object sender, bool floating) {
                    if (Device.RuntimePlatform == Device.Android)
                    {
                        if (floating)
                        {
                            floatingView.ToggleFloatingView = true;
                        }
                        else
                        {
                            floatingView.ToggleFloatingView = false;
                        }
                    }
                };
                if (Device.RuntimePlatform == Device.Android)
                {
                    floatingView.Image       = "toolbar_add.png";
                    floatingView.ButtonColor = Color.FromHex("#E64A19");
                    AbsoluteLayout.SetLayoutBounds(floatingView, new Rectangle(1, .9, 80, 90));
                    AbsoluteLayout.SetLayoutFlags(floatingView, AbsoluteLayoutFlags.PositionProportional);
                    floatingView.Clicked += async delegate(object sender, EventArgs e) {
                        if (UserTokenSettings.Current.HasExpiresIn())
                        {
                            MessagingService.Current.SendMessage(MessageKeys.NavigateLogin);
                        }
                        else
                        {
                            await NavigationService.PushAsync(this.Navigation, new StatusesEditPage(new Statuses()));
                        }
                    };
                    this.AbsoluteLayout.Children.Add(floatingView);
                }

                ViewModel.GetClientStatusesAsync();
                hasInitialization = true;
            }
            UpdatePage();
        }