Exemple #1
0
        void HandleSelection(UICollectionView collectionView, NSIndexPath indexPath, bool selected)
        {
            var info = Handler?.PositionalViewSelector?.GetInfo(indexPath.Section, (int)indexPath.Item);

            if ((info?.Kind ?? PositionKind.Header) == PositionKind.Item)
            {
                var itemPos = new ItemPosition(info.SectionIndex, info.ItemIndex);

                if (selected)
                {
                    Handler?.VirtualView?.SetSelected(itemPos);
                }
                else
                {
                    Handler?.VirtualView?.SetDeselected(itemPos);
                }

                var cell = Handler?.GetCell(indexPath);

                if (cell?.PositionInfo != null)
                {
                    cell.PositionInfo.IsSelected = selected;
                }
            }
        }
Exemple #2
0
        public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
        {
            var viewHolder = new RvItemHolder(handler.MauiContext);

            clickListener = new RvViewHolderClickListener(viewHolder, rvh =>
            {
                if (rvh.PositionInfo == null || rvh.PositionInfo.Kind != PositionKind.Item)
                {
                    return;
                }

                var p = new ItemPosition(rvh.PositionInfo.SectionIndex, rvh.PositionInfo.ItemIndex);

                rvh.PositionInfo.IsSelected = !rvh.PositionInfo.IsSelected;

                if (rvh.PositionInfo.IsSelected)
                {
                    handler.VirtualView?.SetSelected(p);
                }
                else
                {
                    handler.VirtualView?.SetDeselected(p);
                }
            });

            viewHolder.ItemView.SetOnClickListener(clickListener);

            return(viewHolder);
        }