public virtual void OnViewAttachedToWindow(AbstractViewHolder viewHolder) { AbstractViewHolder.SelectionState selectionState = mTableView.GetSelectionHandler().GetColumnSelectionState(viewHolder.AdapterPosition); // Control to ignore selection color if (!mTableView.IsIgnoreSelectionColors()) { // Change background color of the view considering it's selected state mTableView.GetSelectionHandler() .ChangeColumnBackgroundColorBySelectionStatus(viewHolder, selectionState); } // Change selection status viewHolder.SetSelected(selectionState); // Control whether the TableView is sortable or not. if (mTableView.IsSortable()) { if (viewHolder is AbstractSorterViewHolder) { // Get its sorting state SortState state = GetColumnSortHelper().GetSortingStatus(viewHolder.AdapterPosition); // Fire onSortingStatusChanged ((AbstractSorterViewHolder)viewHolder).OnSortingStatusChanged(state); } } }
protected internal override bool ClickAction(RecyclerView view, MotionEvent e) { // Get interacted view from x,y coordinate. Android.Views.View childView = view.FindChildViewUnder(e.GetX(), e.GetY()); if (childView != null) { // Find the view holder AbstractViewHolder holder = (AbstractViewHolder)mRecyclerView.GetChildViewHolder(childView); int column = holder.AdapterPosition; // Control to ignore selection color if (!mTableView.IsIgnoreSelectionColors()) { mSelectionHandler.SetSelectedColumnPosition(holder, column); } if (GetTableViewListener() != null) { // Call ITableView listener for item click GetTableViewListener().OnColumnHeaderClicked(holder, column); } return(true); } return(false); }
public virtual void OnViewDetachedFromWindow(AbstractViewHolder holder) { base.OnViewDetachedFromWindow(holder); // Clear selection status of the view holder mTableView.GetSelectionHandler().ChangeSelectionOfRecyclerView( ((CellRecyclerViewAdapter.CellRowViewHolder)holder).recyclerView, AbstractViewHolder.SelectionState.Unselected, mTableView.GetUnSelectedColor()); }
public virtual void OnViewRecycled(AbstractViewHolder holder) { base.OnViewRecycled(holder); CellRecyclerViewAdapter.CellRowViewHolder viewHolder = (CellRecyclerViewAdapter.CellRowViewHolder)holder; // ScrolledX should be cleared at that time. Because we need to prepare each // recyclerView // at onViewAttachedToWindow process. viewHolder.recyclerView.ClearScrolledX(); }
public virtual void OnBindViewHolder(AbstractViewHolder holder, int yPosition) { CellRecyclerViewAdapter.CellRowViewHolder viewHolder = (CellRecyclerViewAdapter.CellRowViewHolder)holder; CellRowRecyclerViewAdapter viewAdapter = (CellRowRecyclerViewAdapter)viewHolder.recyclerView.GetAdapter(); // Get the list IList <ICell> rowList = mItemList[yPosition]; // Set Row position viewAdapter.SetYPosition(yPosition); // Set the list to the adapter viewAdapter.SetItems(rowList); }
public virtual AbstractViewHolder[] GetVisibleViewHolders() { int visibleChildCount = FindLastVisibleItemPosition() - FindFirstVisibleItemPosition() + 1; int index = 0; AbstractViewHolder[] views = new AbstractViewHolder[visibleChildCount]; for (int i = FindFirstVisibleItemPosition(); i < FindLastVisibleItemPosition() + 1; i++) { views[index] = (AbstractViewHolder)mCellRowRecyclerView.FindViewHolderForAdapterPosition(i); index++; } return(views); }
public virtual void OnViewAttachedToWindow(AbstractViewHolder viewHolder) { base.OnViewAttachedToWindow(viewHolder); AbstractViewHolder.SelectionState selectionState = mTableView.GetSelectionHandler().GetRowSelectionState(viewHolder.AdapterPosition); // Control to ignore selection color if (!mTableView.IsIgnoreSelectionColors()) { // Change background color of the view considering it's selected state mTableView.GetSelectionHandler().ChangeRowBackgroundColorBySelectionStatus(viewHolder, selectionState); } // Change selection status viewHolder.SetSelected(selectionState); }
private void SortingStatusChanged(int column, SortState sortState) { AbstractViewHolder holder = mColumnHeaderLayoutManager.GetViewHolder(column); if (holder != null) { if (holder is AbstractSorterViewHolder) { ((AbstractSorterViewHolder)holder).OnSortingStatusChanged(sortState); } else { throw new ArgumentException("Column Header ViewHolder must extend " + "AbstractSorterViewHolder"); } } }
public virtual AbstractViewHolder[] GetVisibleCellViewsByColumnPosition(int xPosition) { int visibleChildCount = FindLastVisibleItemPosition() - FindFirstVisibleItemPosition() + 1; int index = 0; AbstractViewHolder[] viewHolders = new AbstractViewHolder[visibleChildCount]; for (int i = FindFirstVisibleItemPosition(); i < FindLastVisibleItemPosition() + 1; i++) { CellRecyclerView cellRowRecyclerView = (CellRecyclerView)FindViewByPosition(i); AbstractViewHolder holder = (AbstractViewHolder)cellRowRecyclerView.FindViewHolderForAdapterPosition(xPosition); viewHolders[index] = holder; index++; } return(viewHolders); }
public virtual void OnViewAttachedToWindow(AbstractViewHolder holder) { base.OnViewAttachedToWindow(holder); CellRecyclerViewAdapter.CellRowViewHolder viewHolder = (CellRecyclerViewAdapter.CellRowViewHolder)holder; ScrollHandler scrollHandler = mTableView.GetScrollHandler(); // The below code helps to display a new attached recyclerView on exact scrolled position. ((ColumnLayoutManager)viewHolder.recyclerView.GetLayoutManager()).ScrollToPositionWithOffset( scrollHandler.GetColumnPosition(), scrollHandler.GetColumnPositionOffset()); SelectionHandler selectionHandler = mTableView.GetSelectionHandler(); if (selectionHandler.IsAnyColumnSelected()) { AbstractViewHolder cellViewHolder = (AbstractViewHolder)viewHolder.recyclerView.FindViewHolderForAdapterPosition( selectionHandler.GetSelectedColumnPosition()); if (cellViewHolder != null) { // Control to ignore selection color if (!mTableView.IsIgnoreSelectionColors()) { cellViewHolder.SetBackgroundColor(mTableView.GetSelectedColor()); } cellViewHolder.SetSelected(AbstractViewHolder.SelectionState.Selected); } } else { if (selectionHandler.IsRowSelected(holder.AdapterPosition)) { selectionHandler.ChangeSelectionOfRecyclerView(viewHolder.recyclerView, AbstractViewHolder.SelectionState.Selected, mTableView.GetSelectedColor()); } } }
public virtual void OnBindViewHolder(AbstractViewHolder holder, int xPosition) { mTableAdapter.OnBindCellViewHolder(holder, GetItem(xPosition), xPosition, mYPosition); }
public virtual void OnBindViewHolder(AbstractViewHolder holder, int position) { mTableAdapter.OnBindColumnHeaderViewHolder(holder, GetItem(position), position); }