Size GetSwipeItemSize(ISwipeItem swipeItem) { var items = GetSwipeItemsByDirection(); if (IsHorizontalSwipe()) { if (swipeItem is SwipeItem) { return(new Size(items.Mode == SwipeMode.Execute ? _contentView.Frame.Width / items.Count : SwipeItemWidth, _contentView.Frame.Height)); } if (swipeItem is SwipeItemView horizontalSwipeItemView) { var swipeItemViewSizeRequest = horizontalSwipeItemView.Measure(double.PositiveInfinity, double.PositiveInfinity, MeasureFlags.IncludeMargins); return(new Size(swipeItemViewSizeRequest.Request.Width > 0 ? (float)swipeItemViewSizeRequest.Request.Width : SwipeItemWidth, _contentView.Frame.Height)); } } else { if (swipeItem is SwipeItem) { return(new Size(_contentView.Frame.Width / items.Count, GetSwipeItemHeight())); } if (swipeItem is SwipeItemView horizontalSwipeItemView) { var swipeItemViewSizeRequest = horizontalSwipeItemView.Measure(double.PositiveInfinity, double.PositiveInfinity, MeasureFlags.IncludeMargins); return(new Size(_contentView.Frame.Width / items.Count, swipeItemViewSizeRequest.Request.Height > 0 ? (float)swipeItemViewSizeRequest.Request.Height : _contentView.Frame.Height)); } } return(Size.Zero); }
void UpdateIsVisibleSwipeItem(ISwipeItem item) { if (!_isOpen) { return; } _swipeItems.TryGetValue(item, out object view); if (view != null && view is AView nativeView) { bool hidden = false; if (item is SwipeItem swipeItem) { hidden = !swipeItem.IsVisible; } if (item is SwipeItemView swipeItemView) { hidden = !swipeItemView.IsVisible; } _swipeThreshold = 0; nativeView.Visibility = hidden ? ViewStates.Gone : ViewStates.Visible; LayoutSwipeItems(GetNativeSwipeItems()); SwipeToThreshold(false); } }
void OnSwipeItemInvoked(WSwipeItem sender, Microsoft.UI.Xaml.Controls.SwipeItemInvokedEventArgs args) { var windowsSwipeItem = sender; ISwipeItem formsSwipeItem = GetFormsSwipeItem(windowsSwipeItem); formsSwipeItem?.OnInvoked(); }
void ExecuteSwipeItem(ISwipeItem swipeItem) { if (swipeItem == null) { return; } swipeItem.OnInvoked(); }
bool GetIsVisible(ISwipeItem swipeItem) { if (swipeItem is IView view) { return(view.Visibility == Maui.Visibility.Visible); } else if (swipeItem is ISwipeItemMenuItem menuItem) { return(menuItem.Visibility == Maui.Visibility.Visible); } return(true); }
internal void UpdateIsVisibleSwipeItem(ISwipeItem item) { if (!_isOpen) { return; } if (item?.Handler?.PlatformView is UIView platformView) { _swipeThreshold = 0; LayoutSwipeItems(GetNativeSwipeItems()); SwipeToThreshold(false); } }
internal void UpdateIsVisibleSwipeItem(ISwipeItem item) { if (!_isOpen) { return; } _swipeItems.TryGetValue(item, out object?view); if (view != null && view is AView platformView) { _swipeThreshold = 0; LayoutSwipeItems(GetNativeSwipeItems()); SwipeToThreshold(false); } }
void ExecuteSwipeItem(ISwipeItem item) { if (item == null) { return; } bool isEnabled = true; if (item is ISwipeItemMenuItem swipeItem) { isEnabled = swipeItem.IsEnabled; } if (item is ISwipeItemView swipeItemView) { isEnabled = swipeItemView.IsEnabled; } if (isEnabled) { item.OnInvoked(); } }
Size GetSwipeItemSize(ISwipeItem swipeItem) { bool isHorizontal = IsHorizontalSwipe(); var items = GetSwipeItemsByDirection(); var contentHeight = _context.FromPixels(_contentView.Height); var contentWidth = _context.FromPixels(_contentView.Width); if (isHorizontal) { if (swipeItem is SwipeItem) { return(new Size(items.Mode == SwipeMode.Execute ? contentWidth / items.Count : SwipeItemWidth, contentHeight)); } if (swipeItem is SwipeItemView horizontalSwipeItemView) { var swipeItemViewSizeRequest = horizontalSwipeItemView.Measure(double.PositiveInfinity, double.PositiveInfinity, MeasureFlags.IncludeMargins); return(new Size(swipeItemViewSizeRequest.Request.Width > 0 ? (float)swipeItemViewSizeRequest.Request.Width : SwipeItemWidth, contentHeight)); } } else { if (swipeItem is SwipeItem) { return(new Size(contentWidth / items.Count, GetSwipeItemHeight())); } if (swipeItem is SwipeItemView horizontalSwipeItemView) { var swipeItemViewSizeRequest = horizontalSwipeItemView.Measure(double.PositiveInfinity, double.PositiveInfinity, MeasureFlags.IncludeMargins); return(new Size(contentWidth / items.Count, swipeItemViewSizeRequest.Request.Height > 0 ? (float)swipeItemViewSizeRequest.Request.Height : contentHeight)); } } return(Size.Zero); }
internal static Size GetSwipeItemSize(this ISwipeView swipeView, ISwipeItem swipeItem, UIView contentView, SwipeDirection?swipeDirection) { var items = GetSwipeItemsByDirection(swipeView, swipeDirection); double threshold = swipeView.Threshold; if (items == null) { return(Size.Zero); } var contentHeight = contentView.Frame.Height; var contentWidth = contentView.Frame.Width; if (swipeDirection.IsHorizontalSwipe()) { if (swipeItem is ISwipeItemMenuItem) { return(new Size(items.Mode == SwipeMode.Execute ? (threshold > 0 ? threshold : contentWidth) / items.Count : (threshold < SwipeItemWidth ? SwipeItemWidth : threshold), contentHeight)); } if (swipeItem is ISwipeItemView horizontalSwipeItemView) { var swipeItemViewSizeRequest = horizontalSwipeItemView.Measure(double.PositiveInfinity, double.PositiveInfinity); double swipeItemWidth; if (swipeItemViewSizeRequest.Width > 0) { swipeItemWidth = threshold > swipeItemViewSizeRequest.Width ? threshold : swipeItemViewSizeRequest.Width; } else { swipeItemWidth = threshold > SwipeItemWidth ? threshold : SwipeItemWidth; } return(new Size(swipeItemWidth, contentHeight)); } } else { if (swipeItem is ISwipeItemMenuItem) { var swipeItemHeight = GetSwipeItemHeight(swipeView, swipeDirection, contentView); return(new Size(contentWidth / items.Count, (threshold > 0 && threshold < swipeItemHeight) ? threshold : swipeItemHeight)); } if (swipeItem is ISwipeItemView verticalSwipeItemView) { var swipeItemViewSizeRequest = verticalSwipeItemView.Measure(double.PositiveInfinity, double.PositiveInfinity); double swipeItemHeight; if (swipeItemViewSizeRequest.Width > 0) { swipeItemHeight = threshold > swipeItemViewSizeRequest.Height ? threshold : (float)swipeItemViewSizeRequest.Height; } else { swipeItemHeight = threshold > contentHeight ? threshold : contentHeight; } return(new Size(contentWidth / items.Count, swipeItemHeight)); } } return(Size.Zero); }
Size GetSwipeItemSize(ISwipeItem swipeItem) { if (_contentView == null || Element == null) { return(Size.Zero); } bool isHorizontal = IsHorizontalSwipe(); var items = GetSwipeItemsByDirection(); if (items == null) { return(Size.Zero); } double threshold = Element.Threshold; double contentHeight = _context.FromPixels(_contentView.Height); double contentWidth = _context.FromPixels(_contentView.Width); if (isHorizontal) { if (swipeItem is ISwipeItem) { return(new Size(items.Mode == SwipeMode.Execute ? (threshold > 0 ? threshold : contentWidth) / items.Count : (threshold < SwipeViewExtensions.SwipeItemWidth ? SwipeViewExtensions.SwipeItemWidth : threshold), contentHeight)); } if (swipeItem is ISwipeItemView horizontalSwipeItemView) { var swipeItemViewSizeRequest = horizontalSwipeItemView.Measure(double.PositiveInfinity, double.PositiveInfinity); double swipeItemWidth; if (swipeItemViewSizeRequest.Width > 0) { swipeItemWidth = threshold > swipeItemViewSizeRequest.Width ? threshold : (float)swipeItemViewSizeRequest.Width; } else { swipeItemWidth = threshold > SwipeViewExtensions.SwipeItemWidth ? threshold : SwipeViewExtensions.SwipeItemWidth; } return(new Size(swipeItemWidth, contentHeight)); } } else { if (swipeItem is ISwipeItem) { var swipeItemHeight = GetSwipeItemHeight(); return(new Size(contentWidth / items.Count, (threshold > 0 && threshold < swipeItemHeight) ? threshold : swipeItemHeight)); } if (swipeItem is ISwipeItemView verticalSwipeItemView) { var swipeItemViewSizeRequest = verticalSwipeItemView.Measure(double.PositiveInfinity, double.PositiveInfinity); double swipeItemHeight; if (swipeItemViewSizeRequest.Width > 0) { swipeItemHeight = threshold > swipeItemViewSizeRequest.Height ? threshold : (float)swipeItemViewSizeRequest.Height; } else { swipeItemHeight = threshold > contentHeight ? threshold : contentHeight; } return(new Size(contentWidth / items.Count, swipeItemHeight)); } } return(Size.Zero); }