Пример #1
0
        public void SetAdapter(FlexibleViewAdapter adapter)
        {
            if (adapter == null)
            {
                return;
            }
            mAdapter = adapter;

            mAdapter.ItemEvent += OnItemEvent;
        }
Пример #2
0
        public FlexibleViewViewHolder GetViewForPosition(int position)
        {
            FlexibleViewAdapter b = mFlexibleView != null?mFlexibleView.GetAdapter() : null;

            if (b == null)
            {
                return(null);
            }
            if (position < 0 || position >= b.GetItemCount())
            {
                return(null);
            }

            int type = b.GetItemViewType(position);
            FlexibleViewViewHolder itemView = null;

            for (int i = 0; i < mAttachedScrap.Count; i++)
            {
                if (mAttachedScrap[i].LayoutPosition == position && mAttachedScrap[i].ItemViewType == type)
                {
                    itemView = mAttachedScrap[i];
                    break;
                }
            }
            if (itemView == null)
            {
                itemView = mRecyclerPool.GetRecycledView(type);
                if (itemView == null)
                {
                    itemView = b.OnCreateViewHolder(type);
                }

                if (!itemView.IsBound)
                {
                    b.OnBindViewHolder(itemView, position);
                    itemView.IsBound = true;
                }

                itemView.AdapterPosition = position;
                itemView.ItemViewType    = type;
            }

            return(itemView);
        }