public virtual AbstractViewHolder OnCreateAbstractViewHolder(ViewGroup parent, int viewType) { // Create a RecyclerView as a Row of the CellRecyclerView CellRecyclerView recyclerView = new CellRecyclerView(mContext); // Use the same view pool recyclerView.SetRecycledViewPool(mRecycledViewPool); if (mTableView.IsShowHorizontalSeparators()) { // Add divider recyclerView.AddItemDecoration(mTableView.GetHorizontalItemDecoration()); } // To get better performance for fixed size TableView recyclerView.HasFixedSize = mTableView.HasFixedWidth(); // set touch mHorizontalListener to scroll synchronously recyclerView.AddOnItemTouchListener(mTableView.GetHorizontalRecyclerViewListener()); // Add Item click listener for cell views recyclerView.AddOnItemTouchListener(new CellRecyclerViewItemClickListener(recyclerView, mTableView)); // Set the Column layout manager that helps the fit width of the cell and column header // and it also helps to locate the scroll position of the horizontal recyclerView // which is row recyclerView recyclerView.SetLayoutManager(new ColumnLayoutManager(mContext, mTableView)); // Create CellRow adapter recyclerView.SetAdapter(new CellRowRecyclerViewAdapter(mContext, mTableView)); // This is for testing purpose to find out which recyclerView is displayed. recyclerView.Id = mRecyclerViewId; mRecyclerViewId++; return(new CellRecyclerViewAdapter.CellRowViewHolder(recyclerView)); }