public sealed override void OnAttachedToRecyclerView(RecyclerView recyclerView) { base.OnAttachedToRecyclerView(recyclerView); switch (CardType) { case RecyclerCardType.FlatHorizontal: _decoration = new DefaultItemDecoration(Context); recyclerView.AddItemDecoration(_decoration); recyclerView.SetLayoutManager(new LinearLayoutManager(Context, _orientation, false)); break; case RecyclerCardType.Horizontal: recyclerView.SetLayoutManager(new LinearLayoutManager(Context, _orientation, false)); break; case RecyclerCardType.Vertical: recyclerView.SetLayoutManager(new GridLayoutManager(Context, CalculateCardColumns(Context), _orientation, false)); break; case RecyclerCardType.Custom: if (CustomCardUseItemDecoration) { _decoration = new DefaultItemDecoration(Context); recyclerView.AddItemDecoration(_decoration); } recyclerView.SetLayoutManager(new LinearLayoutManager(Context)); break; } }
protected override void UpdateItemSpacing() { if (ItemsLayout == null) { return; } if (_itemDecoration != null) { RemoveItemDecoration(_itemDecoration); } _itemDecoration = CreateSpacingDecoration(ItemsLayout); AddItemDecoration(_itemDecoration); var adapter = GetAdapter(); if (adapter != null) { adapter.NotifyItemChanged(_oldPosition); Carousel.ScrollTo(_oldPosition, position: Xamarin.Forms.ScrollToPosition.Center); } base.UpdateItemSpacing(); }
void UpdatePadding() { _recyclerView.SetPadding((int)(Element.ContentPaddingLeft * _density), (int)(Element.ContentPaddingTop * _density), (int)(Element.ContentPaddingRight * _density), (int)(Element.ContentPaddingBottom * _density)); if (Element.IsHorizontal) { if (_paddingDecoration != null) { _recyclerView.RemoveItemDecoration(_paddingDecoration); } var cs = Element.ColumnSpacing; var rs = Element.RowSpacing; if (cs > 0 || rs > 0) { _paddingDecoration = new HorizontalSpacesItemDecoration(ConvertDpToPixels((float)cs), ConvertDpToPixels((int)rs)); _recyclerView.AddItemDecoration(_paddingDecoration); } } else { UpdateGridLayout(); } }
void UpdateItemDecoration() { if (_itemDecoration != null) { RemoveItemDecoration(_itemDecoration); } _itemDecoration = CreateSpacingDecoration(ItemsLayout); AddItemDecoration(_itemDecoration); }
void UpdateGridLayout() { var source = Element.ItemsSource as ICollection; var numberOfItems = source == null ? 0 : source.Count; var horizontalPadding = 0; int numberOfItemsToUse = 1; if (_layoutManager != null) { if (Element.Width > 0) { // float width = (float)_recyclerView.Width - 2; if (Element.IsContentCentered) { float width = (float)Element.Width; int numberOfItemsThatFit = (int)Math.Floor((width) / (Element.ItemWidth + Element.ColumnSpacing)); numberOfItemsToUse = Element.CenterAsFilledRow ? numberOfItemsThatFit : (int)Math.Min(numberOfItemsThatFit, numberOfItems); if (Element.MaxItemsPerRow != -1) { numberOfItemsToUse = Element.MaxItemsPerRow; } var remainingWidth = (width - (Element.ContentPaddingLeft + Element.ContentPaddingRight)) - ((numberOfItemsToUse * Element.ItemWidth) + ((numberOfItemsToUse) * (Element.ColumnSpacing))); horizontalPadding = (int)(remainingWidth / (numberOfItemsToUse + 1)); } else { horizontalPadding = (int)Element.ColumnSpacing; } Console.WriteLine(" width {0} items using {1} padding {2} iwdith {3} ", _recyclerView.Width, numberOfItemsToUse, horizontalPadding, Element.ItemWidth); } } var gridLayoutManager = _layoutManager as GridLayoutManager; if (gridLayoutManager != null) { //TODO calculate gridLayoutManager.SpanCount = Math.Max(1, numberOfItemsToUse); } //TODO if (_paddingDecoration != null) { _recyclerView.RemoveItemDecoration(_paddingDecoration); } _paddingDecoration = new SpacesItemDecoration(ConvertDpToPixels(horizontalPadding), ConvertDpToPixels((int)Element.RowSpacing), numberOfItems, numberOfItemsToUse, ConvertDpToPixels((int)Element.ContentPaddingTop), ConvertDpToPixels((int)Element.ContentPaddingBottom)); // _paddingDecoration = new SpacesItemDecoration (horizontalPadding, (int)Element.RowSpacing, // numberOfItems, numberOfItemsToUse, // (int)Element.ContentPaddingTop, (int)Element.ContentPaddingBottom); _recyclerView.AddItemDecoration(_paddingDecoration); }
private void SetItemDecoration() { if (_isGrid) { var space = Activity.Resources.GetDimensionPixelSize(Resource.Dimension.spacing_card_album_grid); _decoration = new SpacesItemDecoration(space); } else { _decoration = new DividerItemDecoration(Activity, DividerItemDecoration.Vertical); } _recyclerView.AddItemDecoration(_decoration); }
protected override void Dispose(bool disposing) { if (disposing) { if (_itemDecoration != null) { _itemDecoration.Dispose(); _itemDecoration = null; } } base.Dispose(disposing); }
protected virtual void UpdateItemSpacing() { if (ItemsLayout == null) { return; } if (_itemDecoration != null) { RemoveItemDecoration(_itemDecoration); } _itemDecoration = CreateSpacingDecoration(ItemsLayout); AddItemDecoration(_itemDecoration); }
protected override void Dispose(bool disposing) { if (disposing) { if (_itemDecoration != null) { _itemDecoration.Dispose(); _itemDecoration = null; } ClearLayoutListener(); } base.Dispose(disposing); }
protected virtual void UpdateItemSpacing() { if (_layout == null) { return; } if (_itemDecoration != null) { RemoveItemDecoration(_itemDecoration); } _itemDecoration = new SpacingItemDecoration(_layout); AddItemDecoration(_itemDecoration); }
void UpdateGridLayout() { if (_paddingDecoration != null) { _recyclerView.RemoveItemDecoration(_paddingDecoration); } _recyclerView.InvalidateItemDecorations(); var cs = Element.ColumnSpacing; var rs = Element.RowSpacing; if (cs > 0 || rs > 0) { _paddingDecoration = new HorizontalSpacesItemDecoration(ConvertDpToPixels((int)Element.ColumnSpacing), ConvertDpToPixels((int)Element.RowSpacing)); _recyclerView.AddItemDecoration(_paddingDecoration); } }
void UpdatePadding() { _recyclerView.SetPadding((int)Element.ContentPaddingLeft, (int)Element.ContentPaddingTop, (int)Element.ContentPaddingRight, (int)Element.ContentPaddingBottom); if (Element.IsHorizontal) { if (_paddingDecoration != null) { _recyclerView.RemoveItemDecoration(_paddingDecoration); } _paddingDecoration = new HorizontalSpacesItemDecoration(ConvertDpToPixels((float)Element.ColumnSpacing / 2), ConvertDpToPixels((int)Element.RowSpacing)); _recyclerView.AddItemDecoration(_paddingDecoration); } else { UpdateGridLayout(); } }
void UpdatePadding() { _recyclerView.SetPadding((int)Element.ContentPaddingLeft, (int)Element.ContentPaddingTop, (int)Element.ContentPaddingRight, (int)Element.ContentPaddingBottom); if (Element.IsHorizontal) { if (_paddingDecoration != null) { _recyclerView.RemoveItemDecoration(_paddingDecoration); } var source = Element.ItemsSource as ICollection; var numberOfItems = source == null ? 0 : source.Count; _paddingDecoration = new HorizontalSpacesItemDecoration(ConvertDpToPixels((float)Element.ColumnSpacing / 2), ConvertDpToPixels((int)Element.RowSpacing)); _recyclerView.AddItemDecoration(_paddingDecoration); } else { UpdateGridLayout(); } }