XRecyclerView 下拉原理

来源:互联网 发布:会计帐套软件 编辑:程序博客网 时间:2024/05/16 11:19

下拉,上拉的菜单都是普通的viewholder。靠position来判断,是否产生哪种viewholder。


        @Override        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            if (viewType == TYPE_REFRESH_HEADER) {                return new SimpleViewHolder(mRefreshHeader);            } else if (isHeaderType(viewType)) {                return new SimpleViewHolder(getHeaderViewByType(viewType));            } else if (viewType == TYPE_FOOTER) {                return new SimpleViewHolder(mFootView);            }            return adapter.onCreateViewHolder(parent, viewType);        }



        @Override        public int getItemViewType(int position) {            int adjPosition = position - (getHeadersCount() + 1);            if (isRefreshHeader(position)) {                return TYPE_REFRESH_HEADER;            }            if (isHeader(position)) {                position = position - 1;                return sHeaderTypes.get(position);            }            if (isFooter(position)) {                return TYPE_FOOTER;            }            int adapterCount;            if (adapter != null) {                adapterCount = adapter.getItemCount();                if (adjPosition < adapterCount) {                    int type =  adapter.getItemViewType(adjPosition);                    if(isReservedItemViewType(type)) {                        throw new IllegalStateException("XRecyclerView require itemViewType in adapter should be less than 10000 " );                    }                    return type;                }            }            return 0;        }



AVLoadingIndicatorView的setVisibility的目的,当view


    @Override

    public void setVisibility(int v) {        Log.e("xiayu","setVisibility v"+v);        if (getVisibility() != v) {            super.setVisibility(v);            if (v == GONE || v == INVISIBLE) {                mIndicatorController.setAnimationStatus(BaseIndicatorController.AnimStatus.END);            } else {                mIndicatorController.setAnimationStatus(BaseIndicatorController.AnimStatus.START);            }        }    }




0 0
原创粉丝点击