Example #1
0
        public void TestSwipeItemView()
        {
            var swipeView = new SwipeView();

            var swipeItemViewContent = new Grid();

            swipeItemViewContent.BackgroundColor = Colors.Red;

            swipeItemViewContent.Children.Add(new Label
            {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center,
                Text = "SwipeItemView"
            });

            var swipeItemView = new SwipeItemView
            {
                Content = swipeItemViewContent
            };

            swipeView.LeftItems = new SwipeItems
            {
                swipeItemView
            };

            Assert.NotNull(swipeItemView);
            Assert.NotNull(swipeItemView.Content);
            Assert.AreNotEqual(0, swipeView.LeftItems.Count);
        }
        public override bool DispatchTouchEvent(MotionEvent touch)
        {
            if (TouchDispatcher.TouchingView != null)
            {
                double        currentQuota   = ((touch.GetX() - TouchDispatcher.StartingBiasX) / (double)Width);
                SwipeItemView touchedElement = (TouchDispatcher.TouchingView as SwipeItemView);
                switch (touch.ActionMasked)
                {
                case MotionEventActions.Up:
                    Device.BeginInvokeOnMainThread(async() =>
                    {
                        await touchedElement.CompleteTranslationAsync(currentQuota);
                    });
                    (Element as SwipeListView).AppendTouchedElement(touchedElement);
                    TouchDispatcher.TouchingView  = null;
                    TouchDispatcher.StartingBiasX = 0;
                    TouchDispatcher.StartingBiasY = 0;
                    break;

                case MotionEventActions.Move:
                    TouchDispatcher.TouchingView.PerformTranslation(currentQuota);
                    break;
                }
            }
            return(base.DispatchTouchEvent(touch));
        }
        private void RemoveElement(object sender, EventArgs e)
        {
            SwipeItemView itemView = (sender as Button).CommandParameter as SwipeItemView;

            swipeListView.PreventXamarinBug();
            (this.BindingContext as ProjectViewModel).ListItems.Remove((ItemClass)(itemView.BoundItem));
        }
        UIView CreateSwipeItemView(SwipeItemView formsSwipeItemView)
        {
            var renderer = Platform.CreateRenderer(formsSwipeItemView);

            Platform.SetRenderer(formsSwipeItemView, renderer);
            UpdateSwipeItemViewLayout(formsSwipeItemView);
            return(renderer?.NativeView);
        }
        AView CreateSwipeItemView(SwipeItemView swipeItemView)
        {
            var renderer = Platform.CreateRenderer(swipeItemView, _context);

            Platform.SetRenderer(swipeItemView, renderer);
            var swipeItem = renderer?.View;

            return(swipeItem);
        }
        void UpdateSwipeItemViewLayout(SwipeItemView swipeItemView)
        {
            var swipeItemSize   = GetSwipeItemSize(swipeItemView);
            var swipeItemHeight = swipeItemSize.Height;
            var swipeItemWidth  = swipeItemSize.Width;

            swipeItemView.Layout(new Rectangle(0, 0, swipeItemWidth, swipeItemHeight));
            swipeItemView.Content?.Layout(new Rectangle(0, 0, swipeItemWidth, swipeItemHeight));
        }
Example #7
0
        SwipeView CreateMySwipeView()
        {
            var leftSwipeItem = new SwipeItemView
            {
                AutomationId = SwipeItemId,
                Content      = new Label
                {
                    Text              = "Right",
                    TextColor         = Color.White,
                    HorizontalOptions = LayoutOptions.Center,
                    VerticalOptions   = LayoutOptions.Center
                },
                BackgroundColor = Color.Green,
                WidthRequest    = 80,
                Command         = new Command(() =>
                {
                    _leftCount++;
                    _leftSwipeCountLabel.Text = _leftCount.ToString();
                })
            };

            var leftSwipeItems = new SwipeItems {
                leftSwipeItem
            };

            leftSwipeItems.SwipeBehaviorOnInvoked = SwipeBehaviorOnInvoked.Close;
            leftSwipeItems.Mode = SwipeMode.Reveal;

            var swipeContent = new ContentView
            {
                Content = new StackLayout
                {
                    AutomationId    = SwipeViewId,
                    BackgroundColor = Color.LightSkyBlue,
                    Children        =
                    {
                        new Label
                        {
                            Text = "SwipeItem Content",
                            HorizontalOptions = LayoutOptions.Center,
                            VerticalOptions   = LayoutOptions.Center
                        }
                    }
                }
            };

            var mySwipeView = new SwipeView
            {
                LeftItems     = leftSwipeItems,
                Content       = swipeContent,
                HeightRequest = 80
            };

            return(mySwipeView);
        }
Example #8
0
        AView CreateSwipeItemView(SwipeItemView swipeItemView)
        {
            var renderer = Platform.CreateRenderer(swipeItemView, _context);

            Platform.SetRenderer(swipeItemView, renderer);
            var swipeItem = renderer?.View;

            swipeItem.Visibility = swipeItemView.IsVisible ? ViewStates.Visible : ViewStates.Gone;

            return(swipeItem);
        }
		static View CreateItemView(SwipeItemView item)
		{
			return new StackLayout
			{
				VerticalOptions = LayoutOptions.FillAndExpand,
				HorizontalOptions = LayoutOptions.FillAndExpand,
				Children =
				{
					item.Content
				}
			};
		}
Example #10
0
 static View CreateItemView(SwipeItemView item)
 {
     return(new XStackLayout
     {
         VerticalOptions = LayoutOptions.Fill,
         HorizontalOptions = LayoutOptions.Fill,
         Children =
         {
             item.Content
         }
     });
 }
        public override void TouchesMoved(NSSet touches, UIEvent evt)
        {
            UITouch touch = touches.AnyObject as UITouch;

            touchLocation = touch.LocationInView(this);

            currentQuota   = (float)((touchLocation.X - TouchDispatcher.StartingBiasX) / Bounds.Size.Width);
            touchedElement = (TouchDispatcher.TouchingView as SwipeItemView);

            TouchDispatcher.TouchingView.PerformTranslation(currentQuota);

            base.TouchesMoved(touches, evt);
        }
Example #12
0
        protected override void Init()
        {
            Title = "Issue 10940";

            var layout = new StackLayout();

            var instructions = new Label
            {
                Padding         = 12,
                BackgroundColor = Colors.Black,
                TextColor       = Colors.White,
                Text            = "Swipe to the left and verify that opening the SwipeView the CustomEntry is created only one time."
            };

            var customSwipeView = new CustomSwipeView
            {
                BackgroundColor = Colors.LightGray,
                HeightRequest   = 200
            };

            var swipeItemView = new SwipeItemView();

            var swipeItemViewContent = new Grid
            {
                BackgroundColor = Colors.White,
                WidthRequest    = 150
            };

            var customEntry = new CustomEntry
            {
                VerticalOptions = LayoutOptions.Center
            };

            swipeItemViewContent.Children.Add(customEntry);

            swipeItemView.Content = swipeItemViewContent;

            customSwipeView.RightItems = new SwipeItems
            {
                swipeItemView
            };

            layout.Children.Add(instructions);
            layout.Children.Add(customSwipeView);

            Content = layout;
        }
        async void OnDeleteSight(object sender, EventArgs args)
        {
            SwipeItemView item          = sender as SwipeItemView;
            Sight         sightToDelete = item.BindingContext as Sight;
            ObservableCollection <Sight> sightsCollection = listView.ItemsSource as ObservableCollection <Sight>;

            if (sightToDelete != null)
            {
                bool answer = await DisplayAlert(
                    rm.GetString("warning"),
                    rm.GetString("messageDeleteSight"),
                    rm.GetString("deleteAnyway"),
                    rm.GetString("cancel"));

                //System.Diagnostics.Debug.WriteLine("Answer: " + answer);
                if (answer)
                {
                    await AlmicantaratXF.Views.App.PositionsSightsDB.DeleteSightAsync(sightToDelete);

                    sightsCollection.Remove(sightToDelete);
                    currentPosition.CalculateCelestialPosition();
                }
            }
        }
        void UpdateSwipeItemViewLayout(SwipeItemView swipeItemView)
        {
            var swipeItemSize = GetSwipeItemSize(swipeItemView);

            swipeItemView.Layout(new Rectangle(0, 0, swipeItemSize.Width, swipeItemSize.Height));
        }
        private void UndoClick(object sender, EventArgs e)
        {
            SwipeItemView itemView = (sender as Button).CommandParameter as SwipeItemView;

            itemView.PristineItem();
        }
Example #16
0
        public Issue10530()
        {
            Title = "Issue 10530";

            var vm = new Issue10530ViewModel();

            BindingContext = vm;

            var layout = new StackLayout();

            var swipeView = new SwipeView();

            var swipeViewContent = new Grid
            {
                BackgroundColor = Colors.LightGray,
                HeightRequest   = 60
            };

            var infoLabel = new Label
            {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center
            };

            infoLabel.SetBinding(Label.TextProperty, "Item.Text");

            swipeViewContent.Children.Add(infoLabel);
            swipeView.Content = swipeViewContent;

            var swipeItemView = new SwipeItemView();

            swipeItemView.SetBinding(IsVisibleProperty, "Item.RetryAvailable");

            var swipeItemContent = new Grid
            {
                BackgroundColor = Colors.Orange,
                WidthRequest    = 100
            };

            var swipeItemLabel = new Label
            {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center,
                Text      = "Retry",
                TextColor = Colors.White
            };

            swipeItemContent.Children.Add(swipeItemLabel);

            swipeItemView.Content = swipeItemContent;

            swipeView.LeftItems = new SwipeItems {
                swipeItemView
            };

            layout.Children.Add(swipeView);

            var changeButton = new Button
            {
                Text = "Update Item RetryAvailable"
            };

            layout.Children.Add(changeButton);

            Content = layout;

            swipeItemView.Invoked += (sender, args) =>
            {
                vm.MakeRetryInvisibleCommand.Execute(vm.Item);
            };

            changeButton.Clicked += (sender, args) =>
            {
                var item = vm.Item;

                if (item.RetryAvailable)
                {
                    vm.MakeRetryInvisibleCommand.Execute(vm.Item);
                }
                else
                {
                    vm.MakeRetryVisibleCommand.Execute(vm.Item);
                }
            };

            vm.MakeRetryVisibleCommand.Execute(vm.Item);
        }
        public SwipeItemViewIsEnabledGallery()
        {
            Title = "SwipeItemView IsEnabled Gallery";

            var swipeLayout = new StackLayout
            {
                Margin = new Thickness(12)
            };

            var instructions = new Label
            {
                BackgroundColor = Color.Black,
                TextColor       = Color.White,
                Text            = "RemainOpen is used as SwipeBehaviorOnInvoked, tapping on a SwipeItem will not close it."
            };

            swipeLayout.Children.Add(instructions);

            var closeButton = new Button
            {
                Text = "Close SwipeView"
            };

            swipeLayout.Children.Add(closeButton);

            var swipeItemContent = new StackLayout();

            var monkeyList = new List <string>
            {
                "Baboon",
                "Capuchin Monkey",
                "Blue Monkey",
                "Squirrel Monkey",
                "Golden Lion Tamarin",
                "Howler Monkey",
                "Japanese Macaque"
            };

            var monkeyPicker = new Picker {
                Title = "Select a monkey"
            };

            monkeyPicker.ItemsSource = monkeyList;

            var monkeyButton = new Button
            {
                Text = "Get Selected Monkey"
            };

            monkeyButton.Clicked += (sender, args) =>
            {
                var selectedMonkey = monkeyPicker.SelectedItem ?? "None";
                DisplayAlert("Selected Monkey", $"{selectedMonkey}", "Ok");
            };

            swipeItemContent.Children.Add(monkeyPicker);
            swipeItemContent.Children.Add(monkeyButton);

            var swipeItem = new SwipeItemView
            {
                BackgroundColor = Color.White,
                Content         = swipeItemContent
            };

            var swipeItems = new SwipeItems {
                swipeItem
            };

            swipeItems.SwipeBehaviorOnInvoked = SwipeBehaviorOnInvoked.RemainOpen;
            swipeItems.Mode = SwipeMode.Reveal;

            var swipeContent = new Grid
            {
                BackgroundColor = Color.Gray
            };

            var swipeLabel = new Label
            {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center,
                Text = "Swipe to Right"
            };

            swipeContent.Children.Add(swipeLabel);

            var swipeView = new SwipeView
            {
                HeightRequest = 120,
                WidthRequest  = 300,
                LeftItems     = swipeItems,
                Content       = swipeContent
            };

            swipeLayout.Children.Add(swipeView);

            var swipeItemLayout = new StackLayout
            {
                Orientation = StackOrientation.Horizontal
            };

            var swipeItemButton = new Button
            {
                Text            = "Disable SwipeItemView",
                WidthRequest    = 250,
                VerticalOptions = LayoutOptions.Center
            };

            var swipeItemLabel = new Label
            {
                Text = "SwipeItemView is enabled"
            };

            swipeItemLayout.Children.Add(swipeItemButton);
            swipeItemLayout.Children.Add(swipeItemLabel);

            swipeLayout.Children.Add(swipeItemLayout);

            Content = swipeLayout;

            closeButton.Clicked += (sender, e) =>
            {
                swipeView.Close();
            };

            swipeItemButton.Clicked += (sender, args) =>
            {
                swipeItem.IsEnabled = !swipeItem.IsEnabled;

                if (swipeItem.IsEnabled)
                {
                    swipeItemButton.Text = "Disable SwipeItemView";
                    swipeItemLabel.Text  = "SwipeItemView is enabled";
                }
                else
                {
                    swipeItemButton.Text = "Enable SwipeItemView";
                    swipeItemLabel.Text  = "SwipeItemView is disabled";
                }
            };
        }